Estructura condicional Switch
Programación orientada a Objetos
Sentencia Switch
Se trata de una instrucción de tipo alternativa múltiple. Permite ejecutar diferentes bloques de sentencias en función del resultado de una expresión.
Su sintaxis es así:
switch (expresión) {
case valor1:
instrucciones;
break;
case valor2:
instrucciones;
break;
...
default:
sentencias;
break;
}

Diagrama de flujo correspondiente a la estructura Switch.
El funcionamiento es el siguiente:
1. En primer lugar se evalúa la expresión del SWITCH.
2. Posteriormente la sentencia empezará a ejecutar desde el CASE con el que coincida la expresión. Se ejecutarán todas las instrucciones hasta llegar a una sentencia BREAK, o se llegue al final de la sentencia.
3. Si no se encuentra ninguna sentencia CASE cuyo valor coincida con la expresión del SWITCH, se ejecutará la sentencia DEFAULT.
Un ejemplo de la estructura en algoritmo:
Dados dos números reales, a y b, y el símbolo, C (carácter), de un operador aritmético (+, -, *, /), imprimir el resultado de la operación a C b.
LEER a , b , C
Elegir caso S
Caso ’+’
IMPRIMIR ’El resultado es =’, a+b
Caso ’-’
IMPRIMIR ’El resultado es =’, a-b
Caso ’*’
IMPRIMIR ’El resultado es =’, a*b
Caso ’*’
IMPRIMIR ’El resultado es =’, a*b
Caso ’/’
Si a ≠0
IMPRIMIR ’El resultado es =’, a/b
Si no, si b≠0
IMPRIMIR ’El resultado es =’, Inf (infinito)
Si no
IMPRIMIR ’El resultado es =’, NaN (indeterminación)
Fin Si
En otro caso
Ejemplo de un programa con el uso de la estructura switch:
Pedir una nota de 0 a 10 y mostrarla de la forma: Insuficiente, Suficiente, Bien...
public class Main {
public static void main(String[] args) {
int nota;
System.out.print("Introduzca una nota: ");
nota=Entrada.entero();
switch(nota){
case 0:
case 1:
case 2:
case 3:
case 4:
System.out.println("INSUFICIENTE");
break;
case 5:
System.out.println("SUFICIENTE");
break;
case 6:
System.out.println("BIEN");
break;
case 7:
case 8:
System.out.println("NOTABLE");
break;
case 9:
case 10:
System.out.println("SOBRESALIENTE");
break;
default:
System.out.println("ERROR");
break;
}
}
}
Un ejemplo más sencillo:
Pedir una nota numérica entera entre 0 y 10, y mostrar dicha nota de la forma: cero, uno, dos, tres...
public class Main {
public static void main(String[] args) {
int num;
System.out.print("Introduzca una nota numérica entre 0 y 10: ");
num=Entrada.entero();
switch(num){
case 0:
System.out.println("CERO");
break;
case 1:
System.out.println("UNO");
break;
case 2:
System.out.println("DOS");
break;
case 3:
System.out.println("TRES");
break;
case 4:
System.out.println("CUATRO");
break;
case 5:
System.out.println("CINCO");
break;
case 6:
System.out.println("SEIS");
break;
case 7:
System.out.println("SIETE");
break;
case 8:
System.out.println("OCHO");
break;
case 9:
System.out.println("NUEVE");
break;
case 10:
System.out.println("DIEZ");
break;
}
}
}