我正在编写一个程序,其中random方法生成1到100之间的随机数,然后用户猜测该数字是多少。 到目前为止,我构建的代码中的所有内容都可以正常运行,除了程序还计算用户猜测尝试次数的部分。
我知道如何获取用户尝试次数的一般想法:创建一个计数跟踪变量,然后在每个用户条目中增加它。现在不管如何应用计数跟踪变量或在何处应用计数,即使实际尝试更多,用户尝试的次数始终为2。我用Google搜索了这个问题,并尝试了与结果不同的想法(例如:将count ++放入每个“ if / else”语句中),但是没有任何效果。 谁能说出我的代码出了什么问题,为什么它总是显示2作为用户尝试次数?预先感谢您的任何帮助。
System.out.println("Enter a number between 0 and 100: ");
int randomDigit = (0 + (int) (Math.random() * 101));
while (true) {
Scanner scr = new Scanner(System.in);
int guess = scr.nextInt();
int guessCount = 0;
guessCount++;
guessCount = guessCount + 1;
if ((guess < 0) || (guess > 100)) {
System.out.println("You entered an invalid number. \nPlease enter a valid number.");
} else if (guess > randomDigit) {
System.out.println("Your guess is too high. \nPlease enter another guess.");
} else if (guess < randomDigit) {
System.out.println("Your guess is too low. \nPlease enter another guess.");
} else if (guess == randomDigit) {
System.out.println("Congradulations, you found the number! It is " + randomDigit
+ ".\nThe number of attempts it took you to guess the correct answer is: " + guessCount + ".");
break;
}
}
上面的代码始终以2作为用户尝试次数。
答案 0 :(得分:3)
移动此行: intguessCount = 0; 在循环之外,由于您不断重复变量的初始化,因此实际上并未对其进行计数。 使用计数器时,请始终在while / for循环之外定义它。 祝你好运