Dart: Control de Flujo
for clásico, for-in, while y la expresión switch de Dart 3
🔁 1. Bucles: for, for-in y while
Traza de ejecución (suma = 108):
Prueba con tu propia lista
Dart Código (for in):
int suma = 0;
for (final n in numeros) {
suma += n;
}print(suma); // 108
💡 ¿Cuál elegir?
for-in es la forma más idiomática en Dart cuando solo necesitas recorrer los elementos. Usa el for clásico cuando necesitas el índice, y while cuando no sabes de antemano cuántas iteraciones harán falta.
🔀 2. switch como expresión (Dart 3)
Resultado:
Prueba una nota
String calificar(double nota) => switch (nota) {
>= 9 => 'Sobresaliente',
>= 7 => 'Notable',
>= 5 => 'Bien',
>= 4 => 'Suficiente',
_ => 'Insuficiente',
};
💡 switch como expresión
Desde Dart 3, switch puede usarse como expresión (devuelve un valor directamente con =>), sin necesidad de break. El comodín _ actúa como el default.
🎯 Conceptos Clave
for-in
- Recorre cualquier
Iterable - Más legible que el for clásico
while / do-while
while: comprueba antesdo-while: ejecuta al menos una vez
switch expresión
- Devuelve un valor con
=> _como comodín
💪 Ejercicio Práctico
Practica bucles y switch
- Escribe un
do-whileque pida un número hasta que sea positivo. - Recorre una lista con
for-inusandobreakpara detenerte al encontrar un número negativo. - Convierte un
if/else ifde días de la semana en unswitchexpresión que devuelva si es fin de semana.
Solución 1
int numero;
do {
numero = obtenerNumero();
} while (numero <= 0);
Solución 2
for (final n in numeros) {
if (n < 0) break;
print(n);
}
Solución 3
bool esFinDeSemana(String dia) => switch (dia) {
'sábado' || 'domingo' => true,
_ => false,
};