繁体   English   中英

简单的while循环练习

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM