【发布时间】:2020-01-10 06:13:14
【问题描述】:
我想要求用户输入一个字符串和四个整数值,如果用户输入类型不匹配,我希望程序继续要求用户输入整数值,为什么代码会一直循环并且永远不会等待如果用户插入了错误的类型,用户输入?
import java.util.InputMismatchException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String sessionName;
int pomoInterv, breakInterv, terminalBreakInterv;
System.out.println("Please, Enter the session name: ");
sessionName = scanner.nextLine();
while (true) {
try {
System.out.println("Please, Enter the Pomodoro interval: ");
pomoInterv = scanner.nextInt();
break;
} catch (InputMismatchException ex) {
System.out.println(ex.getMessage());
}
}
while (true) {
try {
System.out.println("Please, Enter the break interval: ");
breakInterv = scanner.nextInt();
break;
} catch (InputMismatchException ex) {
System.out.println(ex.getMessage());
}
}
while (true){
try {
System.out.println("Please, Enter the terminal break interval ");
terminalBreakInterv = scanner.nextInt();
break;
} catch (InputMismatchException ex) {
System.out.println(ex.getMessage());
}
}
System.out.println("Done!");
System.out.println(sessionName);
System.out.println(pomoInterv);
System.out.println(breakInterv);
System.out.println(terminalBreakInterv);
}
}
【问题讨论】:
-
@ScaryWombat 我不认为这是对那个问题的欺骗,尽管他们有相同的答案。某处可能有更好的欺骗目标......
-
为这类东西使用库。我可以推荐picocli。
标签: java loops input while-loop