
La sentencia switch se utiliza para seleccionar una de entre múltiples alternativas. Al contrario de la sentencia if-else que sólo podemos indicar dos alternativas, maneja un número finito de posibilidades. Las sentencia switch es especialmente útil cuando la selección se basa en el valor de una variable simple o de una expresión denominada expresión de control o selector. El valor de esta expresión puede ser de tipo int o char, pero no de tipo float ni double.
Sintaxis
switch(expresion o selector)
{
case etiqueta1:
sentencia1
. . .
break;
case etiqueta2:
sentencia2
. . .
break;
case etiqueta_n:
sentencia_n
break;
default:
sentencias;
}
La sentencia switch indica al compilador la línea de código a ejecutar. El programa ejecuta la sentencia switch y salta a la línea etiquetada en el valor correspondiente al valor de la expresión o selector. Por ejemplo, si la expresión toma el valor 5, es decir case 5. La mayoría de las etiquetas suelen ser simples valores int o char, como ‘3’, ‘4’, o ‘5’. Si la expresión toma un valor que no coincide con ninguna de las etiquetas, el programa salta a línea etiquetada con default. La etiqueta default es opcional, si se omite y no hay coincidencia de etiquetas, el programa salta a la sentencia siguiente a switch. La sentencia break produce una salida de la sentencia switch; sin ella, la ejecución del programa continuaría en la siguiente sentencia case. Una de las mejores aplicaciones de switch es sustituir a if anidadas y en la realización de menús. (Ver Sentencia-if/else)
switch(operador)
{
case ‘-‘:
resultado = x-y;
System.out.println(«La resta es: » + resultado);
break;
case ‘+’:
resultado = x+y;
System.out.println(«La suma es: » + resultado);
break;
case ‘*’:
resultado = x*y;
System.out.println(«La multiplicación es: » + resultado);
break;
case ‘/’:
resultado = x/y;
System.out.println(«La división es: » + resultado);
break;
default:
System.out.println(«resultado no valido»);
}
Regla
La sentencia switch e if-else. Si se puede utilizar una sentencia u otra, la regla usual es emplear switch si existen tres o más opciones.
Precaución
La sentencia switch es muy propensa a la producción de errores debido a que en los casos de selección de múltiples alternativas, si se olvida añadir una sentencia break al final de una sentencia case, la ejecución fallará, aunque el compilador no emitirá un mensaje de error y por lo tanto, se irá a la siguiente sentencia case. Por esta razón debe extremar las precauciones en el uso de switch.