我正在编写一个程序,用户在其中输入数字,然后计算机猜测数字。
我在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;