我希望不断获得用户的输入,但有一些限制。输入必须包含1个整数,1个字符串,1个整数,1个字符串。 (即" 3 + 1 - "," 1a4k")。如果用户以错误的方式提供输入,我会警告"输入错误"。
int a = scanner.nextInt();
String b = scanner.next();
int c = scanner.nextInt();
String d = scanner.next();
我将使用该结构来获得我想要的输入。但是,如果用户没有为a输入整数值,用户输入其他值,如String或其他值,我也想警告" Bad input"。我无法处理它。我只是这样编码:
while(true) {
try {
System.out.print("Enter: ");
int a = scanner.nextInt();
String b = scanner.next();
int c = scanner.nextInt();
String d = scanner.next();
// Some logics
}
catch(Exception e) {
System.out.println("Bad input");
scanner.next();
}
}
" 3 + 1 - "," 2 a 2 e"," 3 t 3 - "没关系。
" 3+ 1 - "," 3 + 1 - "," 3 + 1 - "," 3 + 1- "不行。
我很好,没有问题。但是,当输入不正常时,输出了多个警告。我只想要一个警告。
我该如何处理这个问题?
答案 0 :(得分:0)
在发生异常的情况和输入正常的情况下,您应该使用当前行的结尾,但是您希望循环的下一次迭代从下一行读取输入。
while(true) {
try {
System.out.print("Enter: ");
int a = scanner.nextInt();
String b = scanner.next();
int c = scanner.nextInt();
String d = scanner.next();
scanner.nextLine();
// Some logics
}
catch(Exception e) {
System.out.println("Bad input");
scanner.nextLine();
}
}