diegoRodicio

View Categories

🔀 Condicións e bucles

Tempo de lectura estimado: 1 minutos

🔀 Tomar decisións con if e else

if executa un bloque se a condición é certa. else indica que facer no caso contrario. Podemos engadir else if para comprobar máis casos.

int nota = 7;
if (nota >= 9) {
  print('Sobresaliente');
} else if (nota >= 5) {
  print('Aprobado');
} else {
  print('Suspenso');
}

A condición debe ser un bool: en Dart non escribimos if (nota), senón unha comparación como if (nota >= 5).

❓ Comprobar un valor que pode ser nulo

int? nota = int.tryParse('7');
if (nota != null) {
  // Aquí Dart xa sabe que nota é un int.
  print('A nota máis un é ${nota + 1}');
} else {
  print('Non se puido ler a nota');
}

🔁 Repetir con bucles

🔢 for: controlar un contador

for (int numero = 1; numero <= 3; numero++) {
  print('Intento $numero'); // Mostra 1, 2 e 3.
}

Dentro dos parénteses indicamos o valor inicial, a condición para continuar e o cambio ao rematar cada volta.

📋 for-in: percorrer unha colección

final alumnos = ['Xurxo', 'Roi', 'Iria'];
for (final alumno in alumnos) {
  print('Ola, $alumno'); // Unha volta por alumno.
}

final notas = {'Xurxo': 7, 'Iria': 9};
for (final entrada in notas.entries) {
  // Cada entrada ten unha clave e un valor.
  print('${entrada.key}: ${entrada.value}');
}

⏳ while e do-while

while repite mentres se cumpra unha condición. Algo dentro do bucle debe permitir que a condición deixe de cumprirse.

int pendentes = 3;
while (pendentes > 0) {
  print('Quedan $pendentes tarefas');
  pendentes--; // Avanzamos cara ao final do bucle.
}

do-while comproba a condición ao final: o bloque execútase polo menos unha vez.

int intento = 1;
do {
  print('Intento $intento');
  intento++;
} while (intento <= 3);

🛑 break e continue

  • break sae do bucle.
  • continue salta o resto desa volta e pasa á seguinte.
for (final comando in ['listar', '', 'gardar', 'sair', 'axuda']) {
  if (comando.isEmpty) continue; // Saltamos os comandos baleiros.
  if (comando == 'sair') break; // Rematamos o percorrido.
  print(comando); // Mostra listar e gardar; non chega a axuda.
}

🎛️ Escoller un caso con switch

Resulta útil cando comparamos un valor con varias opcións. Nos casos non baleiros de Dart non necesitamos poñer break ao final: non continúa automaticamente no seguinte caso.

🧪 Exemplo completo

🔗 Ver o código en DartPad — https://dartpad.dev/?id=dfe25f8be1c13ec481c9be02476a900e

➡️ Un switch que devolve un valor

A expresión switch serve para escoller un resultado. Os casos sepáranse con comas e _ recolle o resto das opcións.

String idioma = 'gl';
String saudo = switch (idioma) {
  'gl' => 'Ola',
  'es' => 'Hola',
  _ => 'Hello', // Alternativa para calquera outro valor.
};
print(saudo);

📍 Onde existe unha variable?

Unha variable declarada dentro dun bloque só se pode usar nese bloque e nos bloques que conteña. Por exemplo, entrada no bucle anterior non existe fóra do for. A isto chamámoslle ámbito.

📚 Consulta: condicións – https://dart.dev/language/branches e bucles – https://dart.dev/language/loops.