所以我试图处理进入双用户可能是个例外,当我的扫描仪是期待整体输入:在Java中使用.nextInt()时如何处理double的意外输入?
boolean go = true;
do {
System.out.print("Please enter one grade from 0 - 100. To end input, enter a
negative integral value.\n");
try {
int myInt = scanner.nextInt();
.
.
.
}
catch (InputMismatchException e) {
System.out.println("Oops!! Please enter only integral numbers");
}
while (go);
这适用于非数字输入(即一个字母),但如果我输入3.14或另一个ASCII符号 - 例如 - 。在这种情况下,下面的行重复,直到我杀了程序。
Please enter one grade from 0 - 100. To end input, enter a negative integral value.
Oops!! Please enter only integral numbers.
任何想法? :d
回复:我使用System.in和Java 6
你能比“我的代码爆炸”更精确吗? – 2010-01-27 00:41:54
你的意思是“爆炸”是什么意思?你是否再次遇到异常? – Dmitry 2010-01-27 00:42:18
如果用户在'scanner.nextInt();'和'InputMismatchException'处输入'double'确实会被抛出。你确定你没有在你的代码中做其他事吗?如果不是,读取的值是多少,它是输入的double的舍入版本? – bguiz 2010-01-27 01:02:26