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!

Deja tu comentario