使用Scanner.hasNextInt()时遇到无限循环;

时间:2013-11-08 05:57:19

标签: java loops while-loop infinite

所以我这里的代码是:

     public int getCount()
     {
       Scanner s1 = new Scanner(line);
       int count=0; 
       while(s1.hasNextInt());
        {
           int x = s1.nextInt();
           count++;
        }
       return count;
       }

我不明白为什么我在使用.nextInt()时会得到无限循环;并遵循我的所有笔记。

如果你们中的任何人能够提供帮助,我将非常感激。

非常感谢!

2 个答案:

答案 0 :(得分:0)

一会儿后取出分号。由于分号,while之后的块是一个独立的块,因为while循环终止于;,并带有空语句。 while条件始终保持true,因此无限循环。

while(s1.hasNextInt())

答案 1 :(得分:0)

删除此行后的;

while(s1.hasNextInt());

在这种情况下,;充当空语句,因此您有一个包含空语句的while循环,之后是{和{{1}之间的一个块因为带有空语句的循环永远重复,所以永远不会执行它。