我试图从用户那里获取10个Integer输入。另外,当用户输入错误的数据类型(不是Integer)时,我想处理该异常。但是,在同时使用for循环和try / catch时遇到此问题。例如,如果我在第4个数字输入String。我会得到这样的结果:
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);
}
您不会在异常中留下for循环。而不是for循环,我建议使用while循环,例如
// your code
while (integerList.size() < 10) {
Scanner input = new Scanner(System.in);
// your code
try {
// your code
}
catch (InputMismatchException exc) {
input.nextLine();
// your code
}
// your code
}
// your code
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句