Soy relativamente nuevo en java. En una declaración switch
, ¿tiene que poner una declaración break
después de cada case
?Ayuda con la declaración del interruptor
Respuesta
No tiene que romperse después de cada caso, pero si no lo hace fluirán el uno al otro. Algunas veces quiere agrupar varias cajas dejando los descansos.
Es mejor que hagas. De lo contrario, las siguientes declaraciones se ejecutarán también.
switch(someNumber) {
case thisCaseMatches:
doThat();
case thisCaseDoesNotMatch:
shouldntExecuteYetItWillBeExecuted();
default:
alsoWillbeExecuted();
}
Semánticamente sí. De lo contrario, se ejecutarían todas las declaraciones de casos posteriores a la primera coincidencia.
No, no es necesario. Sin embargo, si omite la instrucción break
, se ejecutan todas las sentencias restantes dentro del bloque switch
, independientemente del valor case
con el que se están probando.
Esto puede producir resultados no deseados a veces, como en el siguiente código:
switch (grade) {
case 'A':
System.out.println("You got an A!");
//Notice the lack of a 'break' statement
case 'B':
System.out.println("You got a B!");
case 'C':
System.out.println("You got a C.");
case 'D':
System.out.println("You got a D.");
default:
System.out.println("You failed. :(");
}
Si se establece el grade
variable 'A', este sería el resultado:
You got an A!
You got a B.
You got a C.
You got a D.
You failed. :(
Haces si no está saliendo de la declaración switch
con un return
u otra acción.
Es una buena práctica poner descanso después de cada declaración.
No eres forzado.
Pero si no se pone pausa, la instrucción switch switch en cascada, es decir, más condiciones podrían coincidir, y en ocasiones esto puede conducir a errores lógicos.
Sin embargo, hay personas que piensan que las instrucciones en cascada pueden optimizar el código, ayudando a escribir menos código.
no es (solo) "buena práctica", se necesita semánticamente o no! –
- 1. Expresión dentro de la declaración de la caja del interruptor
- 2. Objective-C Interruptor Declaración
- 3. Ayuda con la declaración de SQL (JOIN)
- 4. gama declaración de caso interruptor
- 5. Declaración de variables dentro del interruptor de C/caja
- 6. Comportamiento extraño en una declaración de interruptor
- 7. Agrupando casos de declaración de interruptor juntos?
- 8. La caja del interruptor JS no funciona
- 9. Cómo detectar el tamaño de la ventana y luego hacer algo con la declaración del interruptor de jquery
- 10. indentación de la caja del interruptor
- 11. Rango dentro de la declaración de la caja del interruptor en Coffeescript
- 12. caja del interruptor con etiqueta de visualización
- 13. ¿Es una declaración de interruptor invertido aceptable JavaScript?
- 14. Cuándo elegir Estrategia sobre el polimorfismo al refaccionar la declaración del interruptor
- 15. 0 en la caja del interruptor?
- 16. referencia enum en la caja del interruptor
- 17. declaración de interruptor indexado, o equivalente? .net, C#
- 18. IntelliJ: Generar la caja del interruptor
- 19. ¿Múltiples condiciones en la caja del interruptor?
- 20. problema con el interruptor condicional
- 21. Declaración de interfaz o interruptor, encontrar el patrón correcto
- 22. caja del interruptor en XSL
- 23. Menos que en caso de declaración/interruptor maravilloso
- 24. Declarando variables dentro de una declaración de interruptor
- 25. ¿Cambiar instrucción dentro de una declaración de interruptor?
- 26. ¿Por qué no puedo usar una "constante" dentro de una declaración de interruptor dentro del alcance?
- 27. caso del interruptor en C# - se espera un valor constante
- 28. Interruptor sin interrupción
- 29. ¿Cómo reemplazo una declaración de interruptor con IOC para poder mantener el principio SOLIDO
- 30. Declaración basada en el diccionario en forma de interruptor con acciones
http://download.oracle.com/javase/tutorial/java/nutsandbolts/switch.html –