我正在编写一个程序,用户输入一个数字,计算机就会猜出这个数字。
我的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++;
}
答案 0 :(得分:1)
问题是打印出“猜得更高”,但计算机却没有 总是猜得更高。我不确定如何解决这个问题。
您为随机数生成指定了101的硬编码限制。但是在计算机猜测小于用户值的情况下,您需要在计算机猜测和用户猜测之间生成一个随机数。
<强>替换强>
computerGuess = guess.nextInt(101);
<强>与强>
computerGuess = guess.nextInt(userGuess - computerGuess) + computerGuess + 1;
答案 1 :(得分:0)
如果您正在尝试构建一个程序,计算机通过二进制搜索逻辑猜测数字,那么您的代码将不起作用。以下代码将执行二进制搜索类逻辑。
{{1}}
PS:没有测试角落情况。代码只是提供一个基本的想法。