[英]simple while loop excercise
我正在学习java,目前我只能进行一项练习,我无法理解为什么代码会以这种方式运行。 我在纸上追踪我的步骤,但我希望得到与程序实际不同的答案。 如果有人可以解释为什么会这样做
码:
System.out.print("Enter an integer: ");
int numb = in.nextInt();
while (in.hasNextInt())
{
System.out.println(numb);
System.out.print("Enter an integer: ");
numb = in.nextInt();
}
TESTER只是输入数字,因此输出应如下所示:
Enter an integer: 5
- 5
- Enter an integer: 10
- 10
- Enter an integer: 8
- 8
- Enter an integer: k
...
但它看起来像这样:
Enter an integer: 5
- 10
- 5
- Enter an integer: -4
- 10
- Enter an integer: 8
- -4
- Enter an integer: -6
- 8
- Enter an integer: 11
- -6
- Enter an integer: -1
这是因为你用in.hasNextInt()
太早(或太晚,这取决于你如何看待它):在Scanner
不能告诉你,如果它看到一个整数或直到终端用户已经进入了一个值之后 。
如果提示输入数字,然后检查hasNextInt
,则代码不应跳过第二个提示:
System.out.print("Enter an integer: ");
while (in.hasNextInt()) {
int numb = in.nextInt();
System.out.println(numb);
System.out.print("Enter an integer: ");
}
这也可以防止在第一个条目不是数字的情况下出现异常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.