Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

182
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!