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);
}
答案 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。