我有这个类“ScanInput”:
public final class ScanInput {
public String outputS;
public int outputI;
public ScanInput() {
}
public final void scanInt(String text) {
System.out.print(text);
@SuppressWarnings("resource")
Scanner inputI = new Scanner(System.in);
int input;
while(true) {
try {
input = inputI.nextInt();
break;
} catch (Exception e) {
scanInt(text);
}
}
outputI = input;
}
}
被这个类称为“Wow”(这个词正确吗?我是java新手):
public class Wow {
public static void main(String[] args) {
ScanInput numbers = new ScanInput();
numbers.scanInt("INPUT NUMBERS: ");
System.out.println("You entered: " + numbers.outputI);
}
}
我试图在未输入整数时让它重复。如果我第一次输入一个整数,它会工作并打印 "You Entered: "+numbers.outputI
。如果我不这样做,它会再次执行“INPUT NUMBERS:”,但随后它会陷入循环,并且无论输入如何,都会打印 "You Enter: "+numbers.outputI);
。如果第一次不是整数,如何让它工作?
最佳答案
从 scanInt
内部调用 scanInt
是递归,而递归是一种循环方式。
你还有有一个while(true)
block ;另一个循环。这是两个循环。一圈太多了。删除其中之一即可完成这项工作。任意一个;你的选择。
关于java - Java中检测到异常时如何重复执行代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60330774/