gpt4 book ai didi

java - Java中使用For循环时的Try/Catch问题

转载 作者:行者123 更新时间:2023-11-29 09:28:11 24 4
gpt4 key购买 nike

我试图从用户那里获得 10 个整数输入。此外,我想处理用户输入错误类型的数据(不是整数)时的异常。但是,当同时使用 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

关于java - Java中使用For循环时的Try/Catch问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39884469/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com