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):

Paso 1: suma += 4 → total = 4
Paso 2: suma += 8 → total = 12
Paso 3: suma += 15 → total = 27
Paso 4: suma += 16 → total = 43
Paso 5: suma += 23 → total = 66
Paso 6: suma += 42 → total = 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:

calificar(7.5)
Notable

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 antes
  • do-while: ejecuta al menos una vez

switch expresión

  • Devuelve un valor con =>
  • _ como comodín

💪 Ejercicio Práctico

Practica bucles y switch

  1. Escribe un do-while que pida un número hasta que sea positivo.
  2. Recorre una lista con for-in usando break para detenerte al encontrar un número negativo.
  3. Convierte un if/else if de días de la semana en un switch expresió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,
};