Мне нужна программа java, которая запрашивает число от 0 до 2. Если пользователь пишет 0, программа заканчивается. Если пользователь пишет 1, он выполняет одну функцию. Если пользователь пишет 2, он выполняет другую функцию. Я также хочу, чтобы обрабатывать ошибки «java.lang.NumberFormatException», с сообщением, и в этом случае, переспросить у пользователя число, пока он не пишет число между 0 и 2While - try-catch в Java
Я использую
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. – Kartic