2. El bucle while
El bucle while permet repetir un conjunt d’instruccions mentre una condició siga certa.
La paraula while significa “mentre”.
Mentres la condició siga certa, el codi del bucle s’executa. Quan la condició deixa de complir-se, el bucle s’acaba.
2.1 Estructura general del while
La forma general d’un bucle while és:
while condicio:
instruccio_1
instruccio_2
...
Aspectes importants:
- la condició és una expressió que pot ser
TrueoFalse - el codi dins del while ha d’estar indentat
- el bucle comprova la condició abans de cada repetició
2.2 Comprovar abans d’entrar
El while comprova la condició abans d’executar el codi.
Això vol dir que:
- si la condició és falsa des del principi
- el codi del bucle no s’executa ni una sola vegada
Exemple:
numero = 10
while numero < 5:
print("Dins del bucle")
En este cas:
- la condició
numero < 5és falsa - el missatge no es mostra mai
Exemple: comptar fins a 5
comptador = 1
while comptador <= 5:
print(comptador)
comptador = comptador + 1
Què passa ací?
- el comptador comença en 1
-
mentre siga menor o igual que 5:
- es mostra el valor
- s’incrementa el comptador
- quan arriba a 6, la condició deixa de complir-se i el bucle acaba
2.3 Parts essencials d’un while
Tot bucle while correcte ha de tindre tres parts clares:
1) Inicialització
Abans del bucle, una variable comença amb un valor.
comptador = 1
2) Condició
És l’expressió que decideix si el bucle continua o s’atura.
while comptador <= 5:
3) Actualització
Dins del bucle, la variable ha de canviar.
comptador = comptador + 1
Si falta l’actualització, el bucle no acabarà mai.
2.4 Exemple d’error típic: bucle infinit
comptador = 1
while comptador <= 5:
print(comptador)
Problema:
comptadormai canvia- la condició sempre és certa
- el programa no acaba
Açò és un bucle infinit.
2.5 while amb entrada d’usuari
Un ús molt habitual del while és repetir una pregunta fins que la resposta siga correcta.
Exemple:
numero = int(input("Introdueix un número positiu: "))
while numero <= 0:
numero = int(input("Error. Introdueix un número positiu: "))
print("Número correcte:", numero)
Funcionament:
- es demana un número
- mentre siga incorrecte, es torna a demanar
- quan és correcte, el bucle acaba
2.6 while com a control d’errors
El while és ideal per a:
- validar dades
- evitar valors incorrectes
- assegurar que el programa continue només amb dades bones
Exemple:
edat = int(input("Edat: "))
while edat < 0:
edat = int(input("Edat no vàlida. Torna a introduir-la: "))
print("Edat registrada:", edat)
2.7 Diferència entre if i while
És molt important no confondre’ls.
Amb if
if edat < 18:
print("Menor d'edat")
- comprova una vegada
- executa o no executa
Amb while
while edat < 18:
print("Encara és menor")
edat = edat + 1
- comprova moltes vegades
- repeteix fins que la condició canvia
2.8 while amb bandera (flag)
A vegades usem una variable bandera per controlar el bucle.
Exemple:
continuar = True
while continuar:
resposta = input("Vols continuar? (si/no): ")
if resposta == "no":
continuar = False
La variable continuar:
- comença sent
True - quan canvia a
False, el bucle acaba
En resum
Hem de tindre en compte:
- inicialitzar sempre les variables
- assegurar que la condició pot arribar a ser falsa
- evitar condicions massa complicades
- comprovar l’actualització dins del bucle