0
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循环,当它运行时,我必须输入一个数字两次才能继续打印“输入一个整数以继续......”感谢您的帮助!

4

2 回答 2

2

根据文档 -Scanner#hasNextInt

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

于 2012-11-21T17:07:32.417 回答
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();
    };
于 2012-11-21T17:06:20.253 回答