相关疑难解决方法(0)

如何使用Scanner处理由无效输入(InputMismatchException)引起的无限循环

所以,我对这段代码感到困惑:

import java.util.InputMismatchException;
import java.util.Scanner;

public class ConsoleReader {

    Scanner reader;

    public ConsoleReader() {
        reader = new Scanner(System.in);
        //reader.useDelimiter(System.getProperty("line.separator"));
    }

    public int readInt(String msg) {
        int num = 0;
        boolean loop = true;

        while (loop) {
            try {
                System.out.println(msg);
                num = reader.nextInt();

                loop = false;
            } catch (InputMismatchException e) {
                System.out.println("Invalid value!");
            } 
        }
        return num;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的输出:

插入整数:
无效的值!
插入整数:
无效的值!
...

java infinite-loop java.util.scanner

34
推荐指数
1
解决办法
3万
查看次数

标签 统计

infinite-loop ×1

java ×1

java.util.scanner ×1