У меня есть простой случай переключения, вложенный в цикл do while. в моем коде, поэтому ввод для случая переключения через пользователя. Итак, я попытался перехватить InputMismatchException, а затем цикл, чтобы продолжить {вернуться снова}, но он останавливает все. Как сделать так, чтобы он продолжал цикл?
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Equation Solver");
char ch;
do
{
try{
System.out.println("\nPlease choose\n");
System.out.println("1. Suvat Equations");
System.out.println("2. Energy Equations");
System.out.println("3. The Doppler Effect Calculations");
System.out.println("4. Gravitational Force Equation");
System.out.println("5. Support");
System.out.println("6. Graph");
int choice = scan.nextInt();
switch (choice)
{
case 1 :
System.out.println("\nPlease choose according to the variable you want to find\n");
System.out.println("1. Initial Velocity");
System.out.println("2. Final Velocity");
System.out.println("3. Acceleration");
System.out.println("4. Distance Travelled");
System.out.println("5. Time Taken");
System.out.println("6. Otherwise Cancel");
try{
int choiceCase1 = scan.nextInt();
switch(choiceCase1){
case 1 :
System.out.println("Please ");
Equation1();
break;
case 2 :
Equation1();
break;
case 3 :
Equation1();
break;
case 4 :
Equation1();
break;
case 5 :
Equation1();
break;
case 6 :
break;
default :
System.out.println("Wrong Entry \n ");
break;
}
}catch (InputMismatchException e){
System.out.println("please stop");
}
case 2 :
Equation1();
break;
case 3 :
System.out.println("Enter integer element to insert");
break;
case 4 :
System.out.println("Enter integer element to insert");
break;
case 5 :
break;
case 6 :
break;
default :
System.out.println("Wrong Entry \n ");
break;
}
} catch (InputMismatchException s){
System.out.println("Caught Exception")
} finally{
System.out.println("\nDo you want to continue (Type y or n) \n");
ch = scan.next().charAt(0);
}
} while (ch == 'Y'|| ch == 'y');
}
Я ожидал, что пользователь сможет ввести y, а затем повторить цикл, но не разрешит его