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

187
Vistas
Dónde colocar el bloque try catch

Buenos dias a todos... Me pregunto donde poner el bloque try-catch para que Input(InputMismatchException) no entero funcione en este codigo, si lo pongo aqui no funciona, si lo pongo antes while, es un infinito bucle, si puede explicar dónde y por qué será perfecto, gracias por su tiempo.

 public void additionalIngredients() { Set<Integer> set = new HashSet<>(); boolean flag = false; while (!flag) { System.out.println("Enter your choice for extra toppings "); int choices = scanner.nextInt(); scanner.nextLine(); try { switch (choices) { case 0: System.out.println("Done"); flag = true; break; case 1: if (!set.contains(choices)) { double extraSauce = 1.2; setAdditionalStuff(getAdditionalStuff() + extraSauce); System.out.println("Extra sauce added on your pizza \n"); break; } else { System.out.println("You already added extra sauce, please consider to add something else"); break; } case 2: if (!set.contains(choices)) { double extraCheese = 2.3; setAdditionalStuff(getAdditionalStuff() + extraCheese); System.out.println("Extra cheese added on your pizza \n"); break; } else { System.out.println("You already added extra cheese, please consider to add something else"); break; } case 3: if (!set.contains(choices)) { double largeDough = 0.7; setAdditionalStuff(getAdditionalStuff() + largeDough); System.out.println("Your pizza has a large Dough \n"); break; } else { System.out.println("Your pizza has already a large dough, consider something else"); break; } } set.add(choices); } catch (InputMismatchException e) { System.out.println("Please enter an integer!"); } } }
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Hay muchas maneras de hacer esto. Esfuércese siempre por encontrar soluciones que hagan que su código sea más fácil de leer y comprender.

Una forma de hacerlo: podría, por ejemplo, crear otro método auxiliar fetchSelectionFromUser() que solo haga una cosa: repetir (con try catch) hasta que el usuario ingrese un número válido .

Una regla rectora es el principio de una sola capa de abstracción . Y eso te dice que tener un interruptor en un ciclo de prueba no es el camino a seguir. Como se dijo, podría optar por un ciclo que simplemente llama a dos métodos: uno que obtiene la entrada y otro que la procesa.

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