【发布时间】:2016-10-05 22:08:22
【问题描述】:
我试图从用户那里获得 10 个整数输入。另外,当用户输入错误类型的数据(不是整数)时,我想处理异常。但是,我在使用 for 循环和 try/catch 时遇到了这个问题。 例如,如果我在第 4 个数字处输入字符串。结果我会得到这个:
Type 1. integer: 15
Type 2. integer: 152
Type 3. integer: 992
Type 4. integer: jj
Invalid number
Type 5. integer: Invalid number
Type 6. integer: Invalid number
Type 7. integer: Invalid number
Type 8. integer: Invalid number
Type 9. integer: Invalid number
Type 10. integer: Invalid number
Integers: [15, 152, 992]
我不知道捕获异常后如何重新进入循环。
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
Integer integer;
List<Integer> integerList = new ArrayList<Integer>();
for (int i = 1; i < 11; i ++) {
System.out.print("Type " + i + ". integer: ");
try {
integer = input.nextInt();
integerList.add(integer);
}
catch (InputMismatchException exc) {
System.out.println("Invalid number");
}
}
System.out.println("Integers: " + integerList);
}
【问题讨论】:
-
您发布的输出到底有什么问题?问题是什么?
-
首先您需要创建一个 MCVE:stackoverflow.com/help/mcve 然后您需要重置扫描仪缓冲区:stackoverflow.com/questions/10604125/… 最后,您需要重置“i”,以便您可以重试相同的输入。跨度>
标签: java