java - Java中检测到异常时如何重复执行代码?

标签 java eclipse loops exception user-input

我有这个类“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/

相关文章:

java - 为什么即使不满足循环内设置的条件,我的循环错误消息也会打印出来

java - 大字符串 1 和 0 到 BitSet

html - html中的处理指令未关闭错误

java - Eclipse Android SDK : Bad version number in . 类文件

vba - 遍历填充的行,根据条件匹配,使用 VBA 将值添加到 Excel 中另一个工作表中的特定单元格

algorithm - 循环的大 O 分析

java - 如何在 Java 中找到文本字符串的真实可见大小

java - java中的多个json绑定(bind)

java - 如何使用 HttpClient 在需要 JavaScript 的页面上进行身份验证?

java - 缺少 Artifact com.oracle :ojdbc7 in eclipse