-2

如何对来自“system.in”的输入给出一个条件,该条件将停止程序,直到插入正确的值?

例如,我正在等待用户的 INT,1、2、3、4 或 5 用户输入“你好”

我怎样才能给用户一条“输入无效,再试一次”的消息并让程序停止,直到他给出正确的?

更新:我没有来,所以你可以写我的代码,现在它看起来像这样:

            int j=UserIn.nextInt();

            switch (j) {
            case 1:
                break;

            case 2:
                writetoDic(word, "dict.txt"); 
                break;

            case 3:
                word = correction;
                break;

我问的是,如果我从用户那里得到的不是 int,我怎么能要求用户给出一个有效的参数而不是仅仅得到一个错误?

4

1 回答 1

0

您需要使用循环。我认为您实际上并不是指halt程序,而是实际上阻止程序继续进行,直到有效输入为止。你可以做这样的事情

Scanner scanner = new Scanner(System.in);
int num;

while (true) {
    try {
        System.out.println("Enter a number: ");
        num = scanner.nextInt();
        if (num >= 1 && num <= 5) {
            break;
        }
    } catch (InputMistmatchException ex){
        System.err.println("Input needs to be a number between 1 and 5, dummy.");
    }
}

如果不在 1 和 5 之间且不是整数,程序将运行

于 2013-11-16T01:00:55.147 回答