Sentencias switch

Java intermedio

Jim White

Java Developer

¿Qué es un switch?

  • Switch cumple un propósito similar a if-else
    • Ejecuta acciones según una condición
    • Se usa en lugar de varios if-then-else
  • Se considera más conciso que múltiples if-then-else
if (bonus == 10000) {
    System.out.println("Let's buy a car!");
} else if (bonus == 5000) {
    System.out.println("Let's take a trip!");
} else if (bonus == 1000) {
    System.out.println("Let's save!");
}
Java intermedio

Sintaxis de switch

switch (expression) {
    case value1:  // if (expression == value1)
        // statements
    case value2:  // if (expression == value2)
        // statements
    // usa tantos case como necesites
}
Java intermedio

Ejemplo de switch

char direction = 'N';

switch (direction) {
    case 'E':  
        System.out.println("We are headed east.");
    case 'S':  
        System.out.println("We are headed south.");
    case 'W':  
        System.out.println("We are headed west.");
    case 'N':   
        System.out.println("We are headed north."); // Esto se imprimiría
}
Java intermedio

Break

  • Detiene que Java continúe con el resto de los casos
    • Sin break, Java ejecuta los siguientes casos hasta encontrar un break
char direction = 'W';

switch (direction) {
    case 'E':
        System.out.println("We are headed east.");
    case 'S':
        System.out.println("We are headed south.");
    case 'W':
        System.out.println("We are headed west."); // Esto se imprimiría
    case 'N':
        System.out.println("We are headed north."); // Esto también se imprimiría
}
Java intermedio

break permite agrupar varios casos:

char direction = 'N';

switch (direction) {
    case 'E':     
    case 'W':  
        System.out.println("We are headed east or west.");
        break;
    case 'S':  
    case 'N':
        System.out.println("We are headed south or north.");
        break;       
}
We are headed south or north.
Java intermedio

Default

  • Se puede añadir un caso default opcional al final de un switch
    • El caso default no tiene valor para comparar con la expresión
    • Si ningún valor coincide, se ejecutan las sentencias de default
    • default debe ser el último caso en un switch
  • default es una forma de tener un caso «para los demás valores»
char direction = 'z';

switch (direction) {
  case 'E':     
  case 'W':  
    System.out.println("To east or west.");
    break;
  case 'S':  
  case 'N':
    System.out.println("To south or north.");
    break; 
  default:
    System.out.println("We are lost.");
}
We are lost.
Java intermedio

Condicionales vs switch

  • Los condicionales también sirven para esta tarea
  • Funcionan con cualquier tipo de dato
char character = 'A';
if (character == 'A') {
    System.out.println("It's A");
} else if (direction =='B') {
    System.out.println("It's B");
} else {
    System.out.println("Unknown");
}
  • Switch puede ser más fácil de leer
  • Solo funciona con algunos tipos como int, byte, short, char o String
char character = 'A';
switch (character) {
  case 'A':
    System.out.println("It's A");
    break;
  case 'B':  
    System.out.println("It's B");
    break;
  default:
    System.out.println("Unknown");
}
Java intermedio

¡Vamos a practicar!

Java intermedio

Preparing Video For Download...