我是Java的新手,我正在努力进行数据验证。当我使用有效数据时,代码运行正常,但是当我输入一个字符串而不是一个整数时,代码就会永远循环。它只是循环“输入错误。请输入一个数字。”提前致谢!
//Get input from user
System.out.print("What is your name (Last, First)? ");
String name = scan.nextLine();
System.out.print("enter a date:");
String datein = scan.nextLine();
boolean valid = false;
while (valid != true)
{
System.out.print("Electricity used (KW):");
if (scan.hasNextDouble())
{
electricityUsed = scan.nextDouble();
valid = true;
}
else
System.out.println("Bad input. Please enter a number.");
}
答案 0 :(得分:8)
答案 1 :(得分:3)
要解决此问题,请在您的其他分支中添加scan.nextLine()
。
答案 2 :(得分:2)
更简单的方法是使用以下内容。
System.out.print("Electricity used (KW):");
while(!scan.hasNextDouble()) {
scan.nextLine();
System.out.println("Bad input. Please enter a number.");
System.out.print("Electricity used (KW):");
}
double electricityUsed = scan.nextDouble();