Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

151
Visualizações
¿Cómo no voy a repetir el mismo caso después de usarlo?

Entonces, hice una clase de hamburguesas con un método para cosas adicionales, mi pregunta es ¿cómo puedo usar el caso 0,1,2 solo 1 vez, como si uso el caso 0, ya no puedo usarlo, solo puedo usar 1 y 2, si uso el caso 1 después de 0, entonces puedo usar solo el caso 2 ya que usé el caso 0 y 1 antes, ¿es posible hacer algo así? Si es así, ¿cómo? El código:

 boolean flag=true; while(flag){ System.out.println("Enter your choice for extra toppings "); int choice=scanner.nextInt(); scanner.nextLine(); switch(choice) { case 0: double salad = 0.35; setAdditional(getAdditional() + salad); System.out.println("salad added\n"); break; case 1: double bacon=1.05; setAdditional(getAdditional()+bacon); System.out.println("Bacon added \n"); break; case 2: double fries=0.79; setAdditional(getAdditional()+fries); System.out.println("fries added \n"); break; case 3: System.out.println("Done"); flag=false; } } } ```
over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

 boolean flag = true; Set<Integer> set = new HashSet<>(); while (flag) { System.out.println("Enter your choice for extra toppings "); int choice = scanner.nextInt(); scanner.nextLine(); switch (choice) { case 0: if (!set.contains(choice)) { double salad = 0.35; setAdditional(getAdditional() + salad); System.out.println("salad added\n"); break; } else { System.out.println("Added already"); } continue; case 1: double bacon = 1.05; setAdditional(getAdditional() + bacon); System.out.println("Bacon added \n"); break; case 2: double fries = 0.79; setAdditional(getAdditional() + fries); System.out.println("fries added \n"); break; case 3: System.out.println("Done"); flag = false; } set.add(choice); } }

así que al final lo hice con Set, solo para ensalada, pero es lo mismo para el resto, si alguien más lo necesita.

over 4 years ago · Santiago Trujillo Relatório

0

sus casos van por números enteros, por lo que una matriz de valores booleanos con 1 elemento para cada opción.

boolean[] allowed = new boolean[options]; (más rápido que hasMap de cadena a booleano).

agregue una marca justo antes de la instrucción "cambiar":

 if(allowed[choice] && choice != 3) {...}

también debe crear una constante de entero STOP_OPTION o algo así y usarla en la declaración if anterior y en el "caso" final de su declaración de cambio. en su ejemplo, configúrelo en 3. Luego, luego puede cambiarlo sin reemplazar todas las instancias de "3" en su código. pero eso es más una sugerencia de estilo.

el booleano "bandera" también es redundante, el ciclo while puede verificar si la opción! = 3. ¡Tenga cuidado con NumberFormatExceptions!

¡buena suerte!

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda