gpt4 book ai didi

java - while 和 try-catch 结构和异常

转载 作者:太空宇宙 更新时间:2023-11-04 14:06:49 25 4
gpt4 key购买 nike

我希望不断获得用户的输入,但有一些限制。输入必须包含 1 个整数、1 个字符串、1 个整数、1 个字符串。 (即“3+1-”、“1a4k”)。如果用户以错误的方式输入,我会发出“错误输入”之类的警告。

int a = scanner.nextInt();
String b = scanner.next();
int c = scanner.nextInt();
String d = scanner.next();

我将使用该结构来获取我想要的输入。但是,如果用户没有输入 a 的整数值,而是输入其他值(例如字符串或其他值),我还想发出“错误输入”之类的警告。我无法应付。我只是这样编码:

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-”不合适。

我很好,没问题。然而,当输入不正常时,会输出多个警告。我只想要一个警告。

我该如何解决这个问题?

最佳答案

在发生异常和输入正常的情况下,您都应该消耗当前行的末尾,但您希望循环的下一次迭代从下一行读取输入。

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();
}
}

关于java - while 和 try-catch 结构和异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28785950/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com