Els bucles són una part fonamental de qualsevol llenguatge de programació, ja que permeten executar un bloc de codi repetidament fins que es compleixi una condició específica. En Lua, hi ha diversos tipus de bucles que podem utilitzar: while, repeat...until i for. En aquesta secció, explorarem cadascun d'aquests bucles amb exemples pràctics i exercicis per reforçar els conceptes apresos.
Tipus de Bucles en Lua
- Bucle
while
whileEl bucle while executa un bloc de codi mentre una condició sigui certa. La sintaxi és la següent:
Exemple:
Explicació:
- Inicialitzem
ia 1. - El bucle
whilecontinuarà executant-se mentreisigui menor o igual a 5. - A cada iteració, imprimim el valor de
ii incrementemien 1.
- Bucle
repeat...until
repeat...untilEl bucle repeat...until és similar al while, però la condició es comprova al final del bucle. Això significa que el bloc de codi s'executa almenys una vegada. La sintaxi és la següent:
Exemple:
Explicació:
- Inicialitzem
ia 1. - El bucle
repeat...untilcontinuarà executant-se fins queisigui major que 5. - A cada iteració, imprimim el valor de
ii incrementemien 1.
- Bucle
for
forEl bucle for és utilitzat per iterar sobre una seqüència de valors. Hi ha dos tipus de bucles for en Lua: el bucle numèric i el bucle generador.
Bucle for numèric
La sintaxi del bucle for numèric és la següent:
Exemple:
Explicació:
- El bucle
forinicialitzaia 1. - Continua executant-se fins que
isigui igual a 5. - Incrementa
ien 1 a cada iteració. - A cada iteració, imprimim el valor de
i.
Bucle for generador
El bucle for generador s'utilitza per iterar sobre elements d'una taula o altres col·leccions. La sintaxi és la següent:
Exemple:
local fruits = { "poma", "plàtan", "cirera" }
for index, fruit in ipairs(fruits) do
print("Fruit " .. index .. ": " .. fruit)
endExplicació:
- Utilitzem
ipairsper iterar sobre una taula indexada numèricament. - A cada iteració,
indexconté l'índex actual ifruitconté el valor corresponent. - Imprimim l'índex i el valor de cada element de la taula.
Exercicis Pràctics
Exercici 1: Bucle while
Escriu un bucle while que imprimeixi els nombres de 10 a 1 en ordre descendent.
Solució:
Exercici 2: Bucle repeat...until
Escriu un bucle repeat...until que demani a l'usuari que introdueixi un nombre positiu. El bucle ha de continuar fins que l'usuari introdueixi un nombre positiu.
Solució:
local num
repeat
print("Introdueix un nombre positiu:")
num = io.read("*n")
until num > 0
print("Has introduït el nombre positiu: " .. num)Exercici 3: Bucle for numèric
Escriu un bucle for que imprimeixi els nombres parells de 2 a 20.
Solució:
Exercici 4: Bucle for generador
Escriu un bucle for que iteri sobre una taula de noms i imprimeixi cada nom amb el seu índex.
Solució:
local names = { "Anna", "Bernat", "Carla", "David" }
for index, name in ipairs(names) do
print("Nom " .. index .. ": " .. name)
endResum
En aquesta secció, hem après sobre els diferents tipus de bucles en Lua: while, repeat...until i for. Hem vist exemples pràctics de cada tipus de bucle i hem practicat amb exercicis per reforçar els conceptes apresos. Els bucles són una eina poderosa que ens permeten repetir blocs de codi de manera eficient i són essencials per a la programació en Lua. En la següent secció, explorarem les funcions en Lua, una altra peça clau per escriure codi modular i reutilitzable.
Curs de Programació en Lua
Mòdul 1: Introducció a Lua
Mòdul 2: Conceptes Bàsics
Mòdul 3: Conceptes Intermedis
Mòdul 4: Conceptes Avançats
- Coroutines
- Programació Orientada a Objectes en Lua
- Tècniques de Depuració
- Optimització del Rendiment
- Ús de l'API C de Lua
Mòdul 5: Aplicacions Pràctiques
- Construcció d'un Joc Simple
- Scripting en Motors de Joc
- Automatització de Tasques amb Lua
- Integració de Lua amb Altres Llenguatges
