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循环,当它运行时,我必须输入一个数字两次才能继续打印“输入一个整数继续.....” 谢谢你的帮助!
答案 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();
};