Saltar al contenido principal

Switch en Dart 🧦

La sentencia switch evalúa una expresión contra una serie de casos. Si la expresión cumple con alguno de los casos, se ejecuta el bloque de código correspondiente.

A continuación se muestra la lógica de un switch en pseudocódigo:

switch (expresión) {
caso1:
// Código que se ejecuta si la condición se cumple
caso2:
// Código que se ejecuta si la condición se cumple
caso3:
// Código que se ejecuta si la condición se cumple
default:
// Código que se ejecuta si ninguna de las anteriores se cumple
}

Ejemplo

Imaginemos que queremos implementar la lógica de un semáforo. Sabemos que existen tres posibles opciones:

  • Rojo: el auto debe detenerse.
  • Amarillo: el auto debe prepararse para detenerse.
  • Verde: el auto puede continuar.

Esto en código sería de la siguiente forma:

void main() {
final string colorSemaforo = "verde";

switch (colorSemaforo) {
case "rojo":
print("Debes detenerte");
case "amarillo":
print("Prepárate para detenerte");
case "verde":
print("Puedes continuar");
}
}
Nota

Si vienes de otros lenguaje de programación, notarás que falta la palabra break en cada caso. Esto es porque en Dart el uso de break es opcional.

El uso de default

Habrá veces donde la condición no se cumple para ninguno de los casos propuestos. Si esto sucede se puede especificar un caso default (por defecto) que se ejecutará si ninguna de las anteriores se cumple. Por ejemplo:

void main() {
int diaSemana = 3;

switch (diaSemana) {
case 1:
print('Lunes');
case 2:
print('Martes');
case 3:
print('Miércoles');
case 4:
print('Jueves');
case 5:
print('Viernes');
case 6:
print('Sábado');
case 7:
print('Domingo');
default:
print('Introduce un número del 1 al 7.');
}
}

En el código anterior si el número no es un número del 1 al 7, se imprimirá el mensaje por defecto: Número de día inválido. Introduce un número del 1 al 7.

Ejercicio propuesto:

Es hora de poner en práctica lo que has aprendido en este post. A continuación, en la pestaña Ejercicio tienes un ejercicio propuesto. La idea es que trates de hacerlo por tu cuenta y luego lo puedas comprobar con la solución sugerida de la pestaña Respuesta

Escribe un programa que le pida al usuario una nota entre 1 y 5. El programa debe imprimir la clasificación correspondiente. Utiliza un switch para determinar el nivel de rendimiento en función de la nota. Si la nota no está en el rango de 1 a 5, imprime un mensaje de error.

  • Si la nota es 1, imprime: "Muy Bajo".
  • Si la nota es 2, imprime: "Bajo".
  • Si la nota es 3, imprime: "Regular".
  • Si la nota es 4, imprime: "Bueno".
  • Si la nota es 5, imprime: "Excelente".
  • Si la nota no es ninguno de los anteriores, imprime: "Nota no válida".
void main() {

// Cambia este valor para probar diferentes resultados.
final int nota = 4;

// tu código va aquí

}

Explicación en video:

A continuación te dejo un video explicando más a detalle cómo utilizar un condicional switch.