无法进行while循环工作,输入两次?

时间:2012-11-21 17:02:53

标签: java loops while-loop

import java.util.Scanner;
public class InputLoop
{
    public static void main(String[] args)
    {
        System.out.println("Enter an integer to continue or a non-integer to finish");
        Scanner scan = new Scanner(System.in);
        int input = scan.nextInt();
        while(scan.hasNextInt())
        {
            System.out.println("Enter an integer to continue or a non-integer to finish");
            scan.next();
        }


    }
}

这是我写的第一个while循环,当它运行时,我必须输入一个数字两次才能继续打印“输入一个整数继续.....” 谢谢你的帮助!

2 个答案:

答案 0 :(得分:2)

根据文档 - Scanner#hasNextInt

  

如果此扫描器输入中的下一个标记可以解释为,则返回true   使用nextInt()方法的默认基数中的int值。扫描仪没有   超越任何输入。

答案 1 :(得分:1)

这会像do ... while循环一样好得多。基本上,它是相同的,除非你在完成后检查条件。

    do
    {
        System.out.println("Enter an integer to continue or a non-integer to finish");
        scan.next();
    } while(scan.hasNextInt());

虽然如果你做了一段时间,你可以添加一个虚拟变量,以确保你至少经历一次。

Boolean firstTime=true;
while(firstTime==true || scan.hasNextInt())
    {
        firstTime=true;
        System.out.println("Enter an integer to continue or a non-integer to finish");
        scan.next();
    };