java,通过scanner和system.in获取用户输入

时间:2013-11-16 00:27:08

标签: java java.util.scanner system.in

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

例如,我正在等待用户的一个INT,1,2,3,4或5 用户输入“hello”

如何向用户提供“输入无效,再试一次”的消息 并保持程序停止,直到他给出正确的程序?

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

            int j=UserIn.nextInt();

            switch (j) {
            case 1:
                break;

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

            case 3:
                word = correction;
                break;

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

1 个答案:

答案 0 :(得分: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之间运行而不是整数