Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

290
Vistas
Java: cambia dentro del bucle do while

Traté de hacer varias selecciones aleatorias que imprimieran el mensaje para cada número de entrada, es decir, una serie de números (4 2 17 0) donde 0 detendría el código. Obtuve una salida incorrecta

 public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int number=scanner.nextInt(); int x = number; do{switch(x) { case 1: System.out.println("Language selection"); break; case 2: System.out.println("Customer support"); break; case 3: System.out.println("Check the balance"); break; case 4: System.out.println("Check loan balance"); break; case 0: System.out.println("Exit"); break; default: return; } if (x==0) {break;} x++; } while (true); } } ``` ![enter image description here](https://i.stack.imgur.com/RJBYn.jpg) ![enter image description here](https://i.stack.imgur.com/wCm4p.jpg)
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Puede usar Scanner#hasNextInt para terminar el bucle cuando se agotan los enteros.

Manifestación:

 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNextInt()) { int x = scanner.nextInt(); switch (x) { case 1: System.out.println("Language selection"); break; case 2: System.out.println("Customer support"); break; case 3: System.out.println("Check the balance"); break; case 4: System.out.println("Check loan balance"); break; case 0: System.exit(0); } } } }

Una ejecución de muestra:

 4 2 17 0 Check loan balance Customer support

Además, tenga en cuenta que necesita un break para evitar que los casos se caigan sin darse cuenta. No vi ningún uso default en este caso y, por lo tanto, lo eliminé del código de demostración.

Alternativamente, usando un bucle do-while:

 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int x = 0; do { x = scanner.nextInt(); switch (x) { case 1: System.out.println("Language selection"); break; case 2: System.out.println("Customer support"); break; case 3: System.out.println("Check the balance"); break; case 4: System.out.println("Check loan balance"); break; } } while (x != 0); } }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda