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:

while condición do
    -- código a ejecutar
end

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:

for variable = inicio, fin, paso do
    -- código a ejecutar
end

Ejemplo:

for i = 1, 5 do
    print("Iteración: " .. i)
end

Bucle for genérico

Se utiliza para iterar sobre elementos de una tabla.

Sintaxis:

for clave, valor in pairs(tabla) do
    -- código a ejecutar
end

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:

local i = 1

while i <= 10 do
    print(i)
    i = i + 1
end

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:

for i = 10, 1, -1 do
    print(i)
end

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.

© Copyright 2024. Todos los derechos reservados