当输入一个无效输入时,它会进入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 : ");
}
}
}
预期-输入无效值时,向用户显示错误消息并重新输入,直到用户输入有效值。
实际值-当输入无效值时,它会在屏幕上反复显示错误消息,而无需重新输入
只需添加输入。下一个()
} catch (Exception ex) {
System.out.println("Invalid value entered.. Enter again : ");
input.next();
}
input.next()清除扫描仪。
很可能是输入已关闭,或者输入中的下一个标记不是双精度标记。这两种方法中的任何一种都会导致抛出异常,而不会推进输入,从而导致无限循环。
因此,您需要找出错误的原因,采取适当的措施,例如:
public static double getInputNumber(Scanner input){
double num=0;
while(true) {
try {
num = input.nextDouble();
return num;
} catch (InputMismatchException ex) {
System.out.println("Invalid value entered.. Enter again : ");
} catch (NoSuchElementException ex) {
System.out.println("Input exhausted ");
return 0;
} catch (IllegalStateException ex) {
System.out.println("Scanner closed ");
return 0;
}
}
}
}
你也可以使用
输入。调用
nextDouble()
我试图检查用户是否输入了字符串。如果用户输入了字符串,我的程序应该输出错误消息。如果用户输入了整数,我的程序应该继续运行 这是我到目前为止的代码,我需要添加另一个条件来检查用户是否输入字符串,我尝试了一些方法,但它们不起作用
问题内容: 我正在学习“困难方式” Python35。下面是原始代码,我们被要求对其进行更改,以便它可以接受其中不包含0和1的数字。 这是我的解决方案,可以很好地运行并识别浮点值: 通过搜索类似的问题,我找到了一些答案,这些答案可以帮助我编写另一个解决方案,如下面的代码所示。问题是,使用isdigit()不允许用户输入浮点值。因此,如果用户说要取50.5%,它将告诉他们学习如何键入数字。否则它适用
我需要检查用户输入的内容是否正确。如果不是,我需要以msgbox的形式打印错误。 上面的代码似乎不起作用。 有什么想法吗?
问题内容: 如何检查给定的输入控件是否为空?我知道该字段上有一个属性,该属性告诉您给定的字段最初是否为空,但是如果有人填充该字段并再次提取整个内容该怎么办? 我认为上述功能是必要的,因为它对告知用户该字段必不可少。 任何想法将不胜感激! 问题答案: 很简单: 您也可以使用代替,如果这对您来说更自然。 更好的替代方法可能是真正利用Angular的形式能力: 在此处更新了Plnkr。
问题内容: 我正在制作一个简单的程序,可让您添加比赛结果以及完成比赛所用的秒数。所以要输入时间,我这样做: 所以我的问题是,如果用户输入的不是正数,该如何向用户显示错误消息?就像MessageDialog一样,在输入数字之前会提示您错误。 问题答案: 如果无法解析,则会抛出一个。如果您只想在输入无效的情况下重试,则将其包装成这样的循环:
问题内容: 如何检查,如果用户的字符串输入是一个数字(例如等)? 上面的方法不起作用,因为input总是返回一个字符串。 问题答案: 只需尝试将其转换为,然后在无法正常工作时对其进行救助。