Lección 6 · 6 de 20
if, else y operador condicional · Dart
Tome decisiones en Dart con if, else if y else, combine condiciones con &&, || y !, y elija un valor en una línea con el operador ? :.

`if` ejecuta su bloque solo cuando la condición entre paréntesis es verdadera. Como temperature vale 31, temperature > 30 es true y se escribe el aviso de beber agua. Los operadores de comparación son >, <, >=, <=, == (igual) y != (distinto).
Con `else if` y `else` se elige un camino entre varios: Dart prueba las condiciones en orden y se queda con la primera que se cumple. Con 72 puntos, score >= 90 es falso y score >= 70 es verdadero, así que grade vale 'B' y el resto ni se mira.
Fíjese en String grade;: la variable se declara sin valor y cada rama le da uno. Dart comprueba que, pase lo que pase, grade tendrá valor antes de usarse; si faltara el else, no compilaría.
Las condiciones se combinan con `&&` (y), `||` (o) y `!` (no). age >= 18 || withParent se cumple porque, aunque tenga 16 años, va con un adulto. Si el bloque es una sola instrucción, puede ir en la misma línea sin llaves.
El operador condicional condición ? valorSiSí : valorSiNo elige un valor en una sola expresión: age < 18 ? 'junior' : 'adult'. Cabe incluso dentro de ${} para escribir pass o fail sin un if aparte.
Código · main.dart
void main() { int temperature = 31; // if runs its block only when the condition is true. if (temperature > 30) { print('It is $temperature degrees: drink water.'); } // else if and else choose one path out of several. int score = 72; String grade; if (score >= 90) { grade = 'A'; } else if (score >= 70) { grade = 'B'; } else if (score >= 50) { grade = 'C'; } else { grade = 'F'; } print('Score $score: grade $grade'); // && (and), || (or) and ! (not) combine conditions. int age = 16; bool withParent = true; bool isWeekend = false; if (age >= 18 || withParent) print('You can see the film.'); if (!isWeekend && temperature > 25) print('A hot working day.'); print('Is it a B? ${grade == 'B'}'); // condition ? valueIfTrue : valueIfFalse String ticket = age < 18 ? 'junior' : 'adult'; print('Ticket: $ticket, result: ${score >= 50 ? 'pass' : 'fail'}');}Salida · dart run main.dart
It is 31 degrees: drink water. Score 72: grade B You can see the film. A hot working day. Is it a B? true Ticket: junior, result: pass
Para recordar
if (condición) { }solo se ejecuta si estrue.else ifyelseeligen el primer camino que se cumple.==compara;=asigna.&&,||y!combinan condiciones.c ? a : belige entre dos valores.
Ejercicio
Escriba un programa que, según una variable hour de 0 a 23, salude con Good morning, Good afternoon o Good evening, y añada (weekend) con el operador condicional si isWeekend es true.