🔀 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
breaksae do bucle.continuesalta 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.