我写这段代码要运行三次。每当用户输入一个非整数值时,内部就会中断。
while(i<=2)
{
total=0;
numOfint=0;
while (true)
{
System.out.print("Please enter an integer");
if(!in.hasNextInt())
{break;}
else
{
total+=in.nextInt();
numOfint+=1;
}
}
avg[i]=new Average();
avg[i].numb_ints=numOfint;
avg[i].total_ints=total;
System.out.println("Stats for average "+i+". Number of ints : "+avg[i].numb_ints+" Total : "+avg[i].total_ints+" Average: "+avg[i].avg_ints());
i++;
}
问题是它只运行一次。第二次它只是跳过内部while循环。我认为扫描仪缓冲区中有一个非整数值,它没有清除。请帮助我。
答案 0 :(得分:1)
一旦你输入NAN,它将打破所有其余的,缓冲区中没有nextint, 尝试下一个扫描仪,试试这个:
if(!in.hasNextInt()){
String tmp=in.next();
break;
}