我正在编写一个程序,用户在其中输入数字,然后计算机猜测数字。

我在else循环内的if / while语句遇到问题。问题是它会打印出"guess higher",但计算机并非总能猜出更高的值。我不确定如何解决这个问题。

while(computerGuess != userGuess) {
    if(computerGuess > userGuess) {
        System.out.println("Guess lower: ");
        computerGuess = guess.nextInt(userGuess);
        System.out.println(computerGuess);
    }else if(computerGuess < userGuess) {
        System.out.println("Guess higher: ");
        computerGuess = guess.nextInt(101);
        System.out.println(computerGuess);
    }
    amountTries++;
}

最佳答案

问题是它打印出“猜测更高”但计算机没有
  总是猜得更高。我不确定如何解决这个问题。


您为随机数生成指定的硬编码限制为101。但是,如果计算机猜测值小于用户值,则需要在计算机猜测值和用户猜测值之间生成一个随机数。

更换

computerGuess = guess.nextInt(101);



computerGuess = guess.nextInt(userGuess - computerGuess) + computerGuess + 1;

10-07 22:54