【发布时间】:2015-02-21 16:04:25
【问题描述】:
我需要一个 java 程序来询问 0 到 2 之间的数字。如果用户写 0,程序结束。如果用户写 1,它执行一个函数。如果用户写 2,它会执行另一个函数。我还想用一条消息处理错误“java.lang.NumberFormatException”,在这种情况下,再次询问用户一个数字,直到他写一个介于 0 和 2 之间的数字
我用
public static void main(String[] args) throws IOException {
int number = 0;
boolean numberCorrect = false;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while (numberCorrect == false){
System.out.println("Choose a number between 0 and 2");
String option = br.readLine();
number = Integer.parseInt(option);
try {
switch(option) {
case "0":
System.out.println("Program ends");
numberCorrect = true;
break;
case "1":
System.out.println("You choose "+option);
functionA();
numberCorrect = true;
break;
case "2":
System.out.println("You choose "+option);
functionB();
numberCorrect = true;
break;
default:
System.out.println("Incorrect option");
System.out.println("Try with a correct number");
numberCorrect = false;
}
}catch(NumberFormatException z) {
System.out.println("Try with a correct number");
numberCorrect = false;
}
}
}
但是对于这段代码,catch(NumberFormatException z) 不起作用,并且程序不再要求输入数字。
【问题讨论】:
-
答案已经给出。我认为您可以使用 Scanner 而不是 BufferedReader。
标签: java while-loop try-catch numberformatexception