Las condicionales en Flutter
Habrá situaciones en las que necesitarás que se realice una acción diferente según el valor de una variable. Por ejemplo, mostrar una página de bienvenida si es la primera vez que un usuario se conecta, y mostrar directamente la página de inicio si no es la primera vez.
Para esto, puedes utilizar los operadores condicionales if y else. If significa que se ejecutará una acción si una condición resulta ser verdadera. Else significa «otro» y la función que hayas escrito entre sus llaves se ejecutará si la condición if no se cumple. Por ejemplo:
int numero = 8;
if(numero == 7){
print('mi número es 7');
}
else {
print('mi número no es 7');
}
↪ mi número no es 7
Verificar más de una condición
A veces es necesario cubrir varios escenarios o combinar condiciones.
Operador O
Puede que quieras que una función se ejecute si una variable tiene un valor u otro. En ese caso, solo necesitas poner todas las condiciones entre paréntesis, separadas por dos barras verticales ||. Aquí un ejemplo:
String fruta = 'naranja';
if(fruta == 'manzana' || fruta == 'naranja'){
print('Me la voy a comer');
}
↪ Me la voy a comer
En este ejemplo, el mensaje se mostrará en la consola de depuración porque al menos una de las dos condiciones es verdadera.
Operador Y
Si deseas que se cumplan dos o más condiciones para que una función se ejecute, debes hacer lo mismo que con las condiciones O, pero usando &&. Aquí un ejemplo:
String fruta1 = 'manzana';
String fruta2 = 'naranja';
if(fruta1 == 'manzana' && fruta2 == 'naranja'){
print('Me voy a comer las dos');
}
↪ Me voy a comer las dos
Aquí, el mensaje se mostrará en la consola de depuración porque ambas condiciones son verdaderas: fruta1 tiene el valor «manzana» y fruta2 tiene el valor «naranja».
O + Y
Finalmente, es posible combinar condiciones Y y O en un mismo if. Aquí un ejemplo:
int numero1 = 6;
int numero2 = 3;
if( (numero1 == 6 && numero2 == 3) || (numero1 + numero2 == 10) ){
print('Una de las dos afirmaciones es verdadera');
}
↪ Una de las dos afirmaciones es verdadera
En este caso, una de las dos condiciones es verdadera (mis valores son 6 y 3). El mensaje se muestra correctamente en la consola de depuración.
Usar el método switch/case/break
Además de las condiciones con if y else, Flutter ofrece otra manera de manejar condiciones múltiples: el método switch/case. Este enfoque se utiliza a menudo cuando tienes varios valores posibles para una misma variable y quieres ejecutar un bloque de código específico para cada valor.
La sintaxis del método switch es más legible y concisa que varias condiciones if/else anidadas, especialmente cuando tienes muchos casos diferentes. Así es como funciona:
- Usas switch seguido de la variable que deseas probar.
- Luego, para cada valor posible de esa variable, usas case seguido de dicho valor, y después, las acciones a ejecutar.
- Finalmente, es importante terminar cada caso con break, para evitar que la ejecución continúe hacia los otros casos.
- Si ninguno de los valores coincide, puedes usar default para ejecutar un bloque de código por defecto.
Aquí tienes un ejemplo para entender mejor cómo usar estas tres funciones:
String dia = 'lunes';
switch (dia) {
case 'lunes':
print('Inicio de la semana');
break;
case 'martes':
print('Segundo día');
break;
case 'miércoles':
print('Mitad de la semana');
break;
case 'jueves':
print('Casi el final');
break;
case 'viernes':
print('Final de la semana');
break;
case 'sábado':
print('Es fin de semana');
break;
case 'domingo':
print('Es fin de semana');
break;
default:
print('Día desconocido');
}
↪ Inicio de la semana
Este código mostrará «Inicio de la semana» en la consola porque el valor de la variable dia es «lunes».
Conclusión
En conclusión, ser capaz de realizar diferentes acciones según una o más condiciones es una noción fundamental que debes dominar para programar una aplicación en Flutter. Esta noción es aún más poderosa cuando se combina con bucles, que es el tema que se presenta en el siguiente artículo: