La forma mas sencilla de empezar con un lenguaje de programación es entender como funcionan las estructuras de control y como podemos crear nuestras propias funciones, la forma en que podemos usarlas y los elementos que deben tener para poder usarlas. Esta publicación es complementaria a la entrada Introducción a LUA.
Estructuras condicionales.
-- Sintaxis básica if condicion then -- Código end
Una estructura condicional permite que un fragmento de código sea ejecutado sólo si una condición dada es cumplida. Veamos algunos casos y ejemplos de como usarla.
IF básico
-- Ejemplo 1 : Simple if true then local es2018 = true if es2018 then print ( "Es el año 2018" ) end
En el ejemplo anterior solo estamos evaluando que una variable booleana tenga el valor true
para imprimir el mensaje.
Validación de variables
-- Ejemplo 2 : Validación de una variable local soyUnBoton -- variable declarada pero sin valor asignado if soyUnBoton then print ( "La variable no es nula" ) end
En el ejemplo anterior podemos observar como Lua también nos permite determinar si una variable ha sido inicializada, es decir, si tiene algún tipo de dato asignado o valor. Es importante que sepas que toda variable nula devolverá un false como resultado dentro de una estructura condicional. El texto “La variable no es nula” nunca se imprimirá en consola.
if – else
-- Ejemplo 3 : Opciones alternativas if else then local miNombre = "Jhon Doe" if miNombre then print ("Hola "..miNombre) else print("Hola extraño") end
En el ejemplo anterior podemos ver como al evaluar la variable miNombre
definimos si debemos imprimir un texto que incluya el String
almacenado en esa variable o imprimir en consola un texto diferente.
evaluación estricta con elseif
En ocasiones el uso de la sentencia usando else
puede provocar algunos efectos no deseados como en el siguiente ejemplo:
-- Ejemplo 4 : Evaluación abierta / opción por defecto local nombreComida = "agua" if nombreComida == "Manzana" then print("¡Preparemos una ensalada de frutas!") else print("¡Preparemos una ensalada de verduras!") end
Como se puede observar la variable siempre nos mostrará el texto que se encuentra después de la sentencia else
cuando en este caso sería preferible no mostrar ningún texto, para ello podemos usar sentencias estrictas del tipo elseif
como el siguiente ejemplo:
-- Ejemplo 5 : Evaluación estricta con elseif local nombreComida = "agua" if nombreComida == "Manzana" then print("¡Preparemos una ensalada de frutas!") elseif nombreComida == "Lechuga" then print("¡Preparemos ensalada de verduras!") end
Operador not
-- Ejemplo 6 : El operador not - Negando la sentencia local miNombre = "Jhon Doe" if not miNombre then print ("Hola "..miNombre) else print("Hola extraño") end
En el ejemplo anterior nos apoyamos del operador not
para poder evaluar de forma negativa la sentencia. Con la presencia de dicho operador estamos buscando que al evaluar la variable miNombe
ésta deba dar como resultado false
… como no es así va directamente a ejecutar lo que hay dentro de la condición else
.
Operadores de comparación
-- Ejemplo 7 : Evaluar si dos valores son iguales local nombreComida = "Manzana" if nombreComida == "Manzana" then print("¡Preparemos una ensalada de frutas!") end -- Ejemplo 8 : Validar que dos valores no son iguales local miNombre = "Jhon Doe" if miNombre ~= "Grace" then print("El nombre no es igual") end
En el ejemplo anterior podemos ver que solo tuvimos que usar el operador relacional ==
para comparar el valor que esta almacenado en la variable nombreComida
y el String
“Manzana” y validar que ambos son iguales. Para evaluar si 2 valores no son iguales utilizamos el operador ~=
.
condiciones anidadas
-- Ejemplo 9 : Condiciones anidadas local nombre = "Karla" local genero = "mujer" if nombre then if genero == "mujer" then print ( "Hola señorita ".. nombre ) else if genero == "hombre" then print ( "Hola señor "..nombre ) end else print ("Hola extraño") end
En el ejemplo anterior se puede observar como usar condiciones anidadas nos ayuda a definir de forma precisa el código que esperamos se ejecute para asegurar un resultado preciso.
estructuras de ciclos
Estructura de ciclo – FOR
-- Sintaxis básica for variable = inicio, fin [, salto] do -- Código [break] end
El ciclo for
ejecuta un código tomando como guía un número inicial, la cantidad de veces en total que deberá repetirse la codificación y, en caso de ser necesario, especificar por cada vuelta cuanto deberá incrementarse la variable de inicio (por defecto se incrementará de 1 en 1).
Además podemos, de forma opcional, usar la palabra reservada break
en caso de que necesitemos interrumpir la ejecución de esta estructura. Veamos algunos ejemplos de como podemos usar los ciclos for
:
-- Ejemplo 1 : Estructura FOR simple for renglón = 1, 10 do --Imprime el siguiente mensaje en consola 10 veces print ( "Estoy imprimiendo el renglón: "..renglón ) end -- Ejemplo 2 : Estructura FOR con salto especifico for indice = 1, 9, 2 do -- El siguiente mensaje solo se imprime un total de 5 veces print ( "Estoy imprimiendo los indices impares: "..indice ) end -- Ejemplo 3 : Estructura FOR con interrupción de ejecución for numeroInterrupcion = 1, 100, 5 do -- El siguiente mensaje solo se imprime un total de 4 veces print ( "Sigo dentro del ciclo " ) if numeroInterrupcion > 15 then -- Al cumplirse esta condición break obligara al ciclo a terminar print( "Es hora de salir del ciclo" ) break end end
estructura de ciclo – while
-- Sintaxis básica while condicion do — Código end
En la estructura de ciclo while
el código se ejecutará siempre que una condición se cumpla, para ello en general deberás apoyarte de al menos una variable con la que puedas controlar la ejecución. Veamos unos ejemplos:
-- Ejemplo 1 : Condición simple de ciclo WHILE local vidasGato = 9 while vidasGato > 0 do print( "Total vidas: "..vidasGato ) vidasGato = vidasGato - 1 end -- Ejemplo 2 : Condición compuesta de ciclo WHILE local totalRayoLaser = 3 local totalVidas = 6 while totalVidas > 0 and totalRayoLaser > 0 do -- El mensaje solo se imprime 3 veces pues la -- variable totalRayoLaser llega a 0 en 3 vueltas -- de ejecución print("Seguimos en el juego") totalVidas = totalVidas - 1 totalRayoLaser = totalRayoLaser - 1 end
Funciones
-- Sintaxis básica function nombre_funcion ( [parametros] ) -- Código end
Las funciones nos permiten definir bloques de código que podemos usar en diferentes partes de nuestro proyecto o incluso dentro de otras funciones. Para ejecutarlas basta con escribir el nombre de la función acompañado de paréntesis ( ) y los parámetros dentro de esos parémtesis (en caso de que la función lo requiera). Veamos dos ejemplos simples:
-- Ejemplo 1 : Función simple sin parámetros -- Paso 1 - definimos la función function mandaSaludos() print("¡Hola a todos!") end -- Paso 2 - Ejecutamos la función mandaSaludos() -- Ejemplo 2 : Función simple con parámetros -- Paso 1 - definimos la función function saludaPersona( nombre ) print("Hola "..nombre) end -- Paso 2 - Ejecutamos la función saludaPersona("John Doe") -- Se muestra en consola Hola John Doe
Espero hayas disfrutado y aprendido muchas cosas de esta entrada y por favor siéntete libre de compartir esta información en tus redes sociales para que otras personas interesadas también puedan conocer algo nuevo que les pueda ayudar en sus proyectos futuros. ¡Hasta la próxima!