我正在使用以下代码向用户询问他们的身高(以英尺和英寸为单位),如果用户的输入不是 int,则返回错误消息:
loop = true;
while(loop){
if(input.hasNextInt()){
feet = input.nextInt();
loop = false;
break;
}
else{
System.out.println("Invalid input, please enter an integer.");
System.out.print("Feet: ");
input.nextLine();
}
}
loop = true;
System.out.print("Inches: ");
while(loop){
if(input.hasNextInt()){
inches = input.nextInt();
loop = false;
break;
}
if(!input.hasNextInt()){
System.out.println("Invalid input, please enter an integer.");
System.out.print("Inches: ");
input.nextLine();
}
}
该程序完美地返回了英尺的错误消息:
Feet: f
Invalid input, please enter an integer.
Feet:
但是第一次返回英寸的错误消息时,它返回了两次:
Inches: f
Invalid input, please enter an integer.
Inches: Invalid input, please enter an integer.
Inches:
此错误仅在用户第一次输入整数以外的内容时发生。我怎样才能摆脱这个?