Tengo un código de caja de interruptores que muestra un menú de cuatro opciones. Una vez que se completa una elección y su acción, se muestra el menú nuevamente. El último caso (cuarta opción) en el menú es salir. El código funciona perfectamente hasta que llego al final del caso 3, pero luego no vuelve a mostrar el menú y salta directamente a ejecutar el caso 4 y finaliza el programa.
(Para su información, soy muy nuevo en esto, así que gracias por su paciencia).
Aquí está el código:
do { // Display the menu displayMenu(); // Ask the user for one option System.out.println("Enter a number: "); switch (scan.nextInt()) { // Define four cases for different options. Don't forget "break". case 1: System.out.print("Enter a number: "); sumInput = scan.nextInt(); while (sumStart <= sumInput) { sumResult += sumStart; sumStart++; } System.out.println("The sum of 1 to " + sumInput + " is: " + sumResult); break; case 2: System.out.print("Enter a number: "); facInput = scan.nextLong(); while(facStart <= facInput) { facResult = facResult*facStart; facStart++; } System.out.printf("%s %.0f %s %.0f %n", "The factorial of ", facInput , " is ", facResult); break; case 3: System.out.print("Enter a number: "); int left = scan.nextInt(); while(left >= 1) { String leftString = String.valueOf(left); System.out.print("The leftmost digit of " + left + " is "); System.out.println(leftString.charAt(0)); break; } case 4: System.out.print("Bye"); System.exit(0); } } while (option < 4);Creo que en el caso 3, ha dado una declaración de interrupción en su ciclo while. Intente eliminar la interrupción del ciclo while y agréguela después del ciclo.
case 3: System.out.print("Enter a number: "); int left = scan.nextInt(); while(left >= 1) { String leftString = String.valueOf(left); System.out.print("The leftmost digit of " + left + " is "); System.out.println(leftString.charAt(0)); };break;Desea eliminar la declaración de break de su ciclo while para que no se interrumpa de inmediato:
case 3: System.out.print("Enter a number: "); int left = scan.nextInt(); while(left >= 1) { String leftString = String.valueOf(left); System.out.print("The leftmost digit of " + left + " is "); System.out.println(leftString.charAt(0)); } break;