检查输入是否为数字时出现java逻辑错误,如果不是,请重新请求用户输入直到有效
当输入无效输入时,它将转到catch块并无限执行catch块,而不会循环回try块以获取另一个输入
当输入有效数据时,它工作
public static double getInputNumber(Scanner input){
double num=0;
while(true) {
try {
num = input.nextDouble();
return num;
} catch (Exception ex) {
System.out.println("Invalid value entered.. Enter again : ");
}
}
}
预期-当输入无效值时,向用户显示错误消息并获得重新输入,直到用户输入有效值
实际值-当输入无效值时,它会在屏幕上重复显示错误消息,而无需重新输入
# 1 楼答案
只需添加输入。下一个()
输入。next()清除扫描仪
# 2 楼答案
很可能输入已关闭,或者
input
中的下一个标记不是双精度标记。这两种情况都会导致抛出异常,而不推进输入,从而导致无限循环因此,您需要找出错误的原因,采取适当的措施,例如:
您还可以在调用
nextDouble()
之前使用input.hasNextDouble()
进行检查