import java.util.Scanner;
import static java.lang.System.out;
public class TestingStuf2 {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
out.println("Enter a number");
int number = keyboard.nextInt();
while (number < 10) {
if (number < 10) {
out.println("This number is too small.");
keyboard.nextInt();
}else{
out.println("This number is big enough.");
}
}
keyboard.close();
}
}
我只是在循环此代码时遇到一些麻烦。我刚刚开始学习Java,这些循环一直困扰着我。当我运行这个程序时,如果我输入一个小于10的数字,我会收到“”这个数字太小“的消息”然后它允许我再次输入。但是如果我输入一个大于10的数字,我会得到同样的消息。另外,如果我输入的第一个数字大于10,我根本就没有消息,程序就结束了。为什么会这样?
答案 0 :(得分:3)
我认为您忘记重新分配number
变量。这就是
但是,如果我输入一个大于10的数字,我会得到相同的数字 消息。
请尝试以下代码。感谢@ Dev.Joel的评论。我已经将循环修改为do-while
以更好地适应这种情况。
import java.util.Scanner;
import static java.lang.System.out;
public class TestingStuf2 {
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
out.println("Enter a number");
int number = keyboard.nextInt();
do{
if (number < 10) {
out.println("This number is too small.");
/*
* You should reassign number here
*/
number = keyboard.nextInt();
}else{
out.println("This number is big enough.");
}
}while(number < 10);
keyboard.close();
}
}
我建议您使用break point
调试问题。例如,在您的情况下,您将2分配给number
和&#34;此数字太小&#34;打印出来。接下来,使用keyboard.nextInt()
让用户输入另一个int。但是,该数字仍为2.因此,无论您此次输入什么,条件number < 10
都为真,并再次打印"This number is too small"
。