输入和循环无效

时间:2018-08-08 09:35:32

标签: java

T学生 我想知道用户是否输入了不是整数的字符。我该如何向他显示无效单词 然后让他再次输入。

示例:

输入两个数字

a

无效,请重试:1

2

两个数之和= 3

public static void main(String[] args) {
    int x = 0, y, z;

    System.out.println("Enter two integers to calculate their sum");
    Scanner in = new Scanner(System.in);

    try {
        x = in.nextInt();
    } catch (InputMismatchException e ) {
        System.out.print("INVALID");
    }

    y = in.nextInt();
    z = x + y;

    System.out.println("Sum of the integers = " + z);
}

1 个答案:

答案 0 :(得分:1)

您可以例如:

            while(true) {
                try {
                    x = in.nextInt();
                    break;
                  } catch (InputMismatchException e ) {
                    System.out.print("INVALID try again:");
                    in.next(); //To wait for next value otherwise infinite loop
                  }
            }

基本上,您需要将输入添加到循环中并保持循环,直到获得有效输入为止。您可以用不同的方式编写它,但这应该是想法。

需要使用catch中的in.next(),因为nextInt()不会占用第一个输入的换行符,因此我们跳到了这一点。

如果我是我,我将对每行参数使用in.nextLine()并操纵用于检查有效输入(而不是等待异常)的String。