Durante la ejecución hay momentos en los que realizar determinadas acciones dependerá de elementos y factores del propio programa, como mostrar una u otra animación, restar vida a un jugador, presentar un menú o un texto…
Los condicionales permiten evaluar si se cumplen los requisitos para realizar una acción u otra.
if … then
En Lua el condicional utilizado es if.
Veamos un ejemplo:
nota = 7
si nota es mayor o igual a 5 entonces
escribe "enhorabuena, has aprobado"
fin
El programa anterior carga 7 en la variable nota.
Si nota es mayor o igual a 5, has aprobado.
nota = 7
if (nota >= 5) then
print("enhorabuena, has aprobado")
end
Podemos interpretarlo como:
- si <condición> entonces…
- if (nota > 5) then …
También es posible determinar que hacemos si no se cumple la condición, para ello utilizamos else, lo podríamos traducir por «si no«:
else …
nota = 7
if (nota >= 5) then
print("enhorabuena, has aprobado")
else
print("tienes que estudiar mas, has suspendido :-(")
end
- si <condición> entonces… si no …
- if(nota >= 5) then … else …
elseif (…)
Si queremos evaluar otra condición en el caso de no cumplirse la primera utilizamos elseif.
nota = 5
if (nota > 5) then
print("enhorabuena, has aprobado")
elseif (nota == 5) then
print("ufff, aprobado por los pelos")
else
print("tienes que estudiar mas, has suspendido :-(")
end
Podemos encadenar tantas condiciones como sean necesarias:
nota = 9
if (nota > 8) then
print("enhorabuena! Sobresaliente!! sigue así!")
elseif (nota > 5) then
print("enhorabuena, has aprobado")
elseif (nota == 5) then
print("ufff, aprobado por los pelos")
elseif (nota < 2) then
print("no has estudiado! nos queda mucho trabajo por hacer :-((")
else
print("tienes que estudiar mas, has suspendido :-(")
end
El siguiente ejemplo utiliza if anidados para escribir la nota con letra:
numero = 7
if (numero == 1) then
print("uno")
elseif (numero == 2) then
print("dos")
elseif (numero == 3) then
print("tres")
elseif (numero == 4) then
print("cuatro")
elseif (numero == 5) then
print("cinco")
elseif (numero == 6) then
print("seis")
elseif (numero == 7) then
print("siete")
elseif (numero == 8) then
print("ocho")
elseif (numero == 9) then
print("nueve")
elseif (numero == 10) then
print("diez")
end
Expresiones
Bien! hemos visto que podemos evaluar expresiones, pero, ¿qué opciones tenemos disponibles? ¿Como indico al programa «distinto de» o «mayor o igual»?
- == Igual
- ~= Distinto
- < Menor
- > Mayor
- <= Menor o igual
- >= Mayor o igual
Ejemplos:
numero = 5
if numero == 1 then
print("uno")
end
if numero ~= 1 then
print("el numero no es 1")
end
if numero < 5 then
print("el numero es menor de 5")
end
if numero > 5 then
print("el numero es mayor de 5")
end
if numero <= 5 then
print("el numero es menor o igual a 5")
end
if numero >= 5 then
print("el numero es mayor o igual a 5")
end
and – or
Por último, tenemos la opción de combinar varias comprobaciones en un solo if, para ello contamos con and y or.
Únicamente tenemos que unir uniendo las condiciones según necesitemos.
numero = 7
if numero == 0 or numero == 1 or numero == 2 or numero == 3 or numero == 4 or numero == 5 or numero == 6 or numero == 7 or numero == 8 or numero == 9 or numero == 10 then
print("la nota es válida")
end
if numero >= 0 and numero <=10 then
print("la nota es válida")
end
if numero < 0 or numero >10 then
print("la nota NO es válida")
end
Tened cuidado con las expresiones, no es lo mismo >5 que >=5, ni == que =.
El primer ejemplo se puede interpretar como:
Si (IF) numero es igual a cero o (OR) numero es igual (==) a uno o (OR) numero es igual (==) a dos ... entonces...
Dicha expresión es equivalente a la segunda:
Si numero es mayor o igual (>=) que cero y (and) numero es menor o igual (<=) que 10, entonces...
En programación es habitual lograr el mismo resultado de distintas formas, por ejemplo:
if numero >= 0 and numero <=10 then
print("la nota es válida")
else
print("la nota NO es válida")
end
Es lo mismo que:
if numero < 0 or numero >10 then
print("la nota NO es válida")
else
print("la nota es válida")
end
Conclusiones
En esta entrada hemos aprendido a realizar distintas acciones según se cumplan condiciones del propio programa.
Practica y juego con el código probando distintas opciones.
En la próxima entrada veremos bucles y usaremos expresiones comparativas como las vistas aquí.
Feliz código!