Estructuras de Control

En esta sección se describen las estructuras de control disponibles en Lua, que se utilizan para controlar el flujo de ejecución de un programa.

Estructuras de control condicionales

Las estructuras de control condicionales permiten ejecutar diferentes bloques de código según ciertas condiciones. En Lua, las estructuras de control condicionales incluyen if, elseif y else. La sintaxis básica es la siguiente:

if condición then
    -- Bloque de código a ejecutar si la condición es verdadera
elseif otra_condición then
    -- Bloque de código a ejecutar si la otra condición es verdadera
else
    -- Bloque de código a ejecutar si ninguna de las condiciones anteriores es verdadera
end

Por ejemplo:

local edad = 25
if edad < 18 then
    print("Eres menor de edad.")
elseif edad >= 18 and edad < 65 then
    print("Eres un adulto.")
else
    print("Eres un adulto mayor.")
end

En este ejemplo, el programa evalúa la variable edad y ejecuta el bloque de código correspondiente según el rango de edad.

Estructuras de control de repetición

Las estructuras de control de repetición permiten ejecutar un bloque de código varias veces. En Lua, las estructuras de control de repetición incluyen while, repeat y for. La sintaxis básica es la siguiente:

Estructura while

while condición do
    -- Bloque de código a ejecutar mientras la condición sea verdadera
end

Estructura repeat

repeat
    -- Bloque de código a ejecutar al menos una vez y luego repetidamente mientras la condición sea falsa
until condición

Estructura for

for variable = inicio, fin, paso do
    -- Bloque de código a ejecutar para cada valor de variable desde inicio hasta fin con un incremento de paso
end

Por ejemplo:

-- Usando while
local contador = 1
while contador <= 5 do
    print("Contador: " .. contador)
    contador = contador + 1
end

-- Usando repeat
local numero = 1
repeat
    print("Número: " .. numero)
    numero = numero + 1
until numero > 5
-- Usando for
for i = 1, 5 do
    print("Índice: " .. i)
end

En este ejemplo, se muestran las tres estructuras de control de repetición en acción, cada una ejecutando un bloque de código que imprime números del 1 al 5.

break y continue

En Lua, puedes usar la palabra clave break para salir de un bucle antes de que se complete su ejecución. Por ejemplo:

for i = 1, 10 do
    if i == 5 then
        break -- Sale del bucle cuando i es igual a 5
    end
    print("Índice: " .. i)
end

En este ejemplo, el bucle for se detiene cuando i alcanza el valor de 5, por lo que solo se imprimirán los índices del 1 al 4.

Lua no tiene una palabra clave continue para saltar a la siguiente iteración de un bucle, pero puedes lograr un efecto similar utilizando una estructura condicional. Por ejemplo:


for i = 1, 10 do
    if i % 2 == 0 then
        -- Si i es par, saltamos a la siguiente iteración
        goto continue
    end
    print("Índice impar: " .. i)
    ::continue::
end

En este ejemplo, se utiliza goto para saltar a la etiqueta continue cuando i es un número par, lo que hace que solo se impriman los índices impares del 1 al 10.