Switch ejecuta todas las declaraciones de casos

¿Alguien puede explicarme por qué mi ciclo va de 0 a 7? Necesito obtener solo en los primeros 3 casos, pero el progtwig está pasando por todos … El código está en el método show ().

for(brojac=0; brojac<3; brojac++){ switch(brojac){ case 1: figura1.setPosition(pomx[random], pomy[random]); stage.addActor(figura1); System.out.println("1"); case 2: figura2.setPosition(pomx[random], pomy[random]); stage.addActor(figura2); System.out.println("2"); case 3: figura3.setPosition(pomx[random], pomy[random]); stage.addActor(figura3); System.out.println("3"); case 4: figura4.setPosition(pomx[random], pomy[random]); stage.addActor(figura4); System.out.println("4"); case 5: figura5.setPosition(pomx[random], pomy[random]); stage.addActor(figura5); System.out.println("5"); case 6: figura6.setPosition(pomx[random], pomy[random]); stage.addActor(figura6); System.out.println("6"); case 7: figura7.setPosition(pomx[random], pomy[random]); stage.addActor(figura7); System.out.println("7"); } } 

Porque el descanso falta Después de cada caso, necesita la palabra clave break. Para obtener una explicación detallada, consulte la instrucción de conmutación tutorial java

p.ej

 for(brojac=0; brojac<3; brojac++){ switch(brojac){ case 1: figura1.setPosition(pomx[random], pomy[random]); stage.addActor(figura1); System.out.println("1"); break; /// Break here case 2: figura2.setPosition(pomx[random], pomy[random]); stage.addActor(figura2); System.out.println("2"); break; /// Break here case 3: figura3.setPosition(pomx[random], pomy[random]); stage.addActor(figura3); System.out.println("3"); break; /// Break here case 4: figura4.setPosition(pomx[random], pomy[random]); stage.addActor(figura4); System.out.println("4"); break; /// Break here case 5: figura5.setPosition(pomx[random], pomy[random]); stage.addActor(figura5); System.out.println("5"); break; /// Break here case 6: figura6.setPosition(pomx[random], pomy[random]); stage.addActor(figura6); System.out.println("6"); break; /// Break here case 7: figura7.setPosition(pomx[random], pomy[random]); stage.addActor(figura7); System.out.println("7"); break; /// Break here } } 

De lo contrario, los otros casos se ejecutarán si uno de los casos anteriores se evalúa como verdadero.

Así es como funcionan las declaraciones de switch de Java .

Ellos “se caen” de los casos una vez que uno de ellos coincida. Necesitas agregar break; después de todos sus casos.

 for(brojac=0; brojac<3; brojac++){ switch(brojac){ case 1: figura1.setPosition(pomx[random], pomy[random]); stage.addActor(figura1); System.out.println("1"); break; case 2: figura2.setPosition(pomx[random], pomy[random]); stage.addActor(figura2); System.out.println("2"); break; case 3: figura3.setPosition(pomx[random], pomy[random]); stage.addActor(figura3); System.out.println("3"); break; case 4: figura4.setPosition(pomx[random], pomy[random]); stage.addActor(figura4); System.out.println("4"); break; case 5: figura5.setPosition(pomx[random], pomy[random]); stage.addActor(figura5); System.out.println("5"); break; case 6: figura6.setPosition(pomx[random], pomy[random]); stage.addActor(figura6); System.out.println("6"); break; case 7: figura7.setPosition(pomx[random], pomy[random]); stage.addActor(figura7); System.out.println("7"); break; } } 
Intereting Posts