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
while
El bucle while
executa un bloc de codi mentre una condició sigui certa. La sintaxi és la següent:
Exemple:
Explicació:
- Inicialitzem
i
a 1. - El bucle
while
continuarà executant-se mentrei
sigui menor o igual a 5. - A cada iteració, imprimim el valor de
i
i incrementemi
en 1.
- Bucle
repeat...until
repeat...until
El 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
i
a 1. - El bucle
repeat...until
continuarà executant-se fins quei
sigui major que 5. - A cada iteració, imprimim el valor de
i
i incrementemi
en 1.
- Bucle
for
for
El 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
for
inicialitzai
a 1. - Continua executant-se fins que
i
sigui igual a 5. - Incrementa
i
en 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) end
Explicació:
- Utilitzem
ipairs
per iterar sobre una taula indexada numèricament. - A cada iteració,
index
conté l'índex actual ifruit
conté 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) end
Resum
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