2011-08-09 14 views

Respuesta

5

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.

3

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(); 
} 
2

Semánticamente sí. De lo contrario, se ejecutarían todas las declaraciones de casos posteriores a la primera coincidencia.

7

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. :(
3

Haces si no está saliendo de la declaración switch con un return u otra acción.

2

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.

+0

no es (solo) "buena práctica", se necesita semánticamente o no! –

Cuestiones relacionadas