public class Two {
public static void main(String[] args) {
Scanner obj = new Scanner(System.in);
while(obj.nextInt() > 5)
{
System.out.println(obj.nextInt());
}
}
}
如果我第一次输入数字(> 5),控制台上没有输出,但如果我在第二次输入数字,则控制台上会有输出。 所以我得到一个输出。 任何人都可以解释为什么会如此?
答案 0 :(得分:3)
java.util.Scanner.nextInt()方法将输入的下一个标记扫描为int
并返回它。读取令牌后,另一个nextInt()
- 呼叫将读取(如名称所示) next 整数。
我认为你期待这样的事情:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int read;
while((read = scanner.nextInt()) > 5)
{
System.out.println(read);
}
}
现在,读取的整数存储在变量read
中,如果大于5,则打印出来。
答案 1 :(得分:1)
您每次输入输出的原因是因为您提示Scanner
对象在循环系统中两次收集输入。每次在next...
上调用Scanner
方法时,都会提示用户。
因此,在while
循环的条件下,您要求用户输入一个值整数值,然后将其与5
进行比较。然后,在你的print语句中再次调用nextInt()
方法,然后再次提示用户输入另一个值整数输入。
因此,为当前循环6 2 10 4
提供一系列6个整数输入,您循环只会打印2
和4
。
相反,你应该在你的循环之外提示和存储一次,然后用条件测试并在循环中打印之后重新启动,如此...
int input = obj.nextInt();
while (input > 5){
System.out.println(input);
input = obj.nextInt();
}