在我的验证方法中,如果用户输入字母而不是十进制值,我希望它打印一条错误消息,该方法确实会在控制台上打印一条错误消息,但它会打印两次,例如如果我输入“dfdff”它打印出的不是小数点:
“错误,无效数字。再试一次”
“错误,无效号码。再试一次”
每次用户输入错误的值时,如何让它打印一次错误消息???
public static double getVaildSubtotal(Scanner sc)
{
double subtotal = 0.0;
boolean isValid = false;
while (isValid == false)
{
if (sc.hasNextDouble())
{
subtotal = sc.nextDouble();
isValid = true;
}
else
{
System.out.println("Error! Invalid decimal value. Try again.");
}
sc.nextLine();
if (isValid == true && subtotal <= 0)
{
System.out.println("Error! Number must be greater then 0.");
isValid = false;
}
else if (isValid == true && subtotal >= 10000)
{
System.out.println("Error! Number must be less then 10000.");
isValid = false;
}
}
return subtotal;
}