Las estructuras de control son fundamentales en cualquier lenguaje de programación, ya que permiten dirigir el flujo de ejecución del programa. En Lua, las estructuras de control incluyen condicionales y bucles. En esta sección, aprenderemos cómo utilizar estas estructuras para tomar decisiones y repetir acciones en nuestros scripts.
Condicionales
if
y else
La estructura if
se utiliza para ejecutar un bloque de código solo si una condición es verdadera. Puedes extender esta estructura con else
para ejecutar un bloque alternativo si la condición es falsa.
Sintaxis:
if condición then -- código si la condición es verdadera else -- código si la condición es falsa end
Ejemplo:
local edad = 20 if edad >= 18 then print("Eres mayor de edad.") else print("Eres menor de edad.") end
elseif
Para manejar múltiples condiciones, puedes usar elseif
.
Sintaxis:
if condición1 then -- código si condición1 es verdadera elseif condición2 then -- código si condición2 es verdadera else -- código si ninguna condición es verdadera end
Ejemplo:
local nota = 85 if nota >= 90 then print("Excelente") elseif nota >= 75 then print("Bueno") else print("Necesitas mejorar") end
Bucles
while
El bucle while
ejecuta un bloque de código mientras una condición sea verdadera.
Sintaxis:
Ejemplo:
local contador = 1 while contador <= 5 do print("Contador: " .. contador) contador = contador + 1 end
for
Lua tiene dos tipos de bucles for
: numérico y genérico.
Bucle for
numérico
Se utiliza para iterar un número específico de veces.
Sintaxis:
Ejemplo:
Bucle for
genérico
Se utiliza para iterar sobre elementos de una tabla.
Sintaxis:
Ejemplo:
local frutas = { "manzana", "banana", "cereza" } for indice, fruta in ipairs(frutas) do print("Fruta " .. indice .. ": " .. fruta) end
Ejercicios Prácticos
Ejercicio 1: Condicionales
Escribe un script que determine si un número es positivo, negativo o cero.
Solución:
local numero = -5 if numero > 0 then print("El número es positivo.") elseif numero < 0 then print("El número es negativo.") else print("El número es cero.") end
Ejercicio 2: Bucle while
Escribe un script que imprima los números del 1 al 10 usando un bucle while
.
Solución:
Ejercicio 3: Bucle for
numérico
Escribe un script que imprima los números del 10 al 1 en orden descendente usando un bucle for
.
Solución:
Ejercicio 4: Bucle for
genérico
Escribe un script que imprima todas las claves y valores de una tabla.
Solución:
local persona = { nombre = "Juan", edad = 30, ciudad = "Madrid" } for clave, valor in pairs(persona) do print(clave .. ": " .. valor) end
Resumen
En esta sección, hemos aprendido sobre las estructuras de control en Lua, incluyendo condicionales (if
, else
, elseif
) y bucles (while
, for
numérico y genérico). Estas estructuras son esenciales para dirigir el flujo de ejecución de nuestros programas y realizar tareas repetitivas de manera eficiente. Asegúrate de practicar con los ejercicios proporcionados para reforzar tu comprensión de estos conceptos.
En el próximo módulo, exploraremos las funciones en Lua, que nos permitirán organizar y reutilizar nuestro código de manera más efectiva.
Curso de Programación en Lua
Módulo 1: Introducción a Lua
Módulo 2: Conceptos Básicos
Módulo 3: Conceptos Intermedios
Módulo 4: Conceptos Avanzados
- Corutinas
- Programación Orientada a Objetos en Lua
- Técnicas de Depuración
- Optimización del Rendimiento
- Uso de la API C de Lua
Módulo 5: Aplicaciones Prácticas
- Construcción de un Juego Simple
- Scripting en Motores de Juegos
- Automatización de Tareas con Lua
- Integración de Lua con Otros Lenguajes