¿Qué es una estructura switch
?
Es una estructura de selección múltiple. La usamos cuando necesitamos tomar una decisión entre muchas opciones posibles, basándonos en el valor de una variable.
En lugar de escribir muchos if
, else if
, else
, que puede resultar largo y menos claro, usamos switch
para elegir una sola opción entre varias.
Estructura básica del switch
:
switch (expresion) {
case valor1:
// Código si expresion == valor1
break;
case valor2:
// Código si expresion == valor2
break;
...
default:
// Código si ningún case coincide
}
expresion
: es la variable o valor que vamos a comparar (por ejemplo, un número o una letra).case valorX:
: si el valor deexpresion
coincide convalorX
, se ejecutan las instrucciones debajo.break
: detiene elswitch
, para que no se sigan ejecutando los demáscase
.default
: se ejecuta si ningúncase
coincide. Es como elelse
.
Ejemplo:
int dia = 3;
switch (dia) {
case 1:
System.out.println("Lunes");
break;
case 2:
System.out.println("Martes");
break;
case 3:
System.out.println("Miércoles");
break;
default:
System.out.println("Día no válido");
}
En este ejemplo, se imprimirá: Miércoles
, porque dia
vale 3
.
Actividades de programación
Actividad 1: Menú de opciones simple
Crea un programa que muestre un menú con estas opciones:
- Saludar
- Decir la hora
- Decir adiós
El usuario introduce un número y el programa responde con un mensaje correspondiente. Usa switch
para manejar las opciones.
import java.time.LocalTime;
import java.util.Scanner;
public class SwitchMenu {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println(“Elige una opción”);
System.out.println(“1.- Saludar”);
System.out.println(“2.- Decir la hora”);
System.out.println(“3.- Decir adiós”);
int opcion = scanner.nextInt();
LocalTime horaActual = LocalTime.now(); // obtiene la hora actual del sistema
switch (opcion){
case 1:
System.out.println(“¡Hola!”);
break;
case 2:
System.out.println(“Son las ” + horaActual);
break;
case 3:
System.out.println(“¡Adiós!”);
break;
default:
System.out.println(“Opción no válida”);
}
}
Actividad 2: Días de la semana
Pide al usuario un número del 1 al 7.
Usa switch
para mostrar el día de la semana correspondiente (1 → Lunes, 2 → Martes, …, 7 → Domingo).
import java.util.Scanner;
public class SwitchNumeros {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println(“Escribe un número del 1 al 7 y te diré a que día de la semana corresponde”);
int dia = scanner.nextInt();
switch(dia){
case 1:
System.out.print(“Es lunes”);
break;
case 2:
System.out.println(“Es martes”);
break;
case 3: System.out.println(“Es miércoles”);
break;
case 4:
System.out.println(“Es jueves”);
break;
case 5:
System.out.println(“Es viernes”);
break;
case 6:
System.out.println(“Es sábado”);
break;
case 7:
System.out.println(“Es domingo”);
break;
default:
System.out.println(“El valor introducido no es válido”);
}
}
}
Actividad 3: Colores del semáforo
Pide al usuario que escriba un color: "rojo"
, "amarillo"
o "verde"
.
Según el color, muestra el mensaje correspondiente:
- Rojo → “¡Alto!”
- Amarillo → “¡Precaución!”
- Verde → “¡Sigue!”
import java.util.Scanner;
public class SwitchSemaforo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println(“¿De qué color está el semáforo (rojo, amarillo o verde)?”);
String color = scanner.nextLine().toLowerCase();
switch(color){
case “rojo”:
System.out.println(“¡Alto!”);
break;
case “amarillo”:
System.out.println(“¡Precaución!”);
break;
case “verde”:
System.out.println(“¡Sigue!”);
break;
default:
System.out.println(“Este color no está en el semáforo”);
}
}
}
Actividad 4: Calculadora simple
Pide dos números al usuario y luego una operación: +
, -
, *
, /
.
Usa switch
para ejecutar la operación elegida y mostrar el resultado.
import java.util.Scanner;
public class SwitchCalculadora {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println(“Vamos a hacer una operación”);
System.out.println(“Escribe un número”);
double num1 = scanner.nextDouble();
System.out.println(“Escribe un segundo número”);
double num2 = scanner.nextDouble();
System.out.println(“Elije una operación (+, -, *, /)”);
char operacion = scanner.next().charAt(0);
switch(operacion){
case ‘+’:
System.out.println(num1 + ” + ” + num2 + ” = ” + (num1 + num2));
break;
case ‘-‘:
System.out.println(num1 + ” – ” + num2 + ” = ” + (num1 – num2));
break;
case ‘*’:
System.out.println(num1 + ” * ” + num2 + ” = ” + (num1 * num2));
break;
case ‘/’:
System.out.println(num1 + ” / ” + num2 + ” = ” + (num1 / num2));
break;
default:
System.out.println(“Esta operación no es posible”);
}
}
}