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 True o False
  • 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:

  • comptador mai 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


Table of contents