¿Cómo puedo evitar repetir el mismo caso después de haberlo utilizado?
Entonces, hice una clase “burger” con un método para agregar cosas extra. Mi pregunta es ¿cómo puedo usar los casos 0, 1 y 2 solamente una vez? Por ejemplo, si uso el caso 0, ya no lo puedo usar más, solo puedo usar los casos 1 y 2. Si uso el caso 1 después del 0, entonces solo puedo usar el caso 2, ya que usé los casos 0 y 1 antes. ¿Es posible hacer algo así? Si es así, ¿cómo?
El código:
public void additions(){
boolean flag=true;
while(flag){
System.out.println("Ingresa tu elección para ingredientes extra: ");
int choice=scanner.nextInt();
scanner.nextLine();
switch(choice) {
case 0:
double salad = 0.35;
setAdditional(getAdditional() + salad);
System.out.println("Se agregó ensalada\n");
break;
case 1:
double bacon=1.05;
setAdditional(getAdditional()+bacon);
System.out.println("Se agregó tocino\n");
break;
case 2:
double fries=0.79;
setAdditional(getAdditional()+fries);
System.out.println("Se agregaron papas fritas\n");
break;
case 3:
System.out.println("Finalizado");
flag=false;
break;
}
}
}
davy.ai
Una posible solución para lograr el comportamiento deseado es utilizar banderas booleanas para cada caso, indicando si ya ha sido utilizado o no. Aquí tienes un ejemplo de modificación del código:
En esta versión modificada, cada caso tiene su propia bandera booleana (por ejemplo,
used0
para el caso 0), inicializada como false. Cuando se utiliza un caso, la bandera respectiva se establece en true, evitando que se utilice nuevamente. Si el usuario intenta usar un caso que ya ha sido utilizado, se muestra un mensaje y el bucle continúa.Ten en cuenta que esta implementación asume que solo se está preparando una hamburguesa a la vez. Si se pueden preparar múltiples hamburguesas a la vez y el comportamiento de las opciones de casos debe ser independiente para cada hamburguesa, sería necesaria una aproximación diferente.