En aquest tema, explorarem les estructures de control avançades que ens permeten escriure codi més eficient i flexible. Aquestes estructures inclouen l'ús de bucles i condicionals més complexos, així com altres tècniques que ens ajuden a gestionar el flux del nostre programa de manera més sofisticada.

Continguts

Condicionals en Cascada

Els condicionals en cascada ens permeten gestionar múltiples condicions de manera seqüencial. Això és útil quan tenim diverses condicions que necessiten ser avaluades en ordre.

Exemple en Python

nota = 85

if nota >= 90:
    print("Excel·lent")
elif nota >= 80:
    print("Molt bé")
elif nota >= 70:
    print("Bé")
elif nota >= 60:
    print("Suficient")
else:
    print("Insuficient")

Explicació

  1. if nota >= 90: Si la nota és 90 o més, imprimeix "Excel·lent".
  2. elif nota >= 80: Si la nota és 80 o més però menys de 90, imprimeix "Molt bé".
  3. elif nota >= 70: Si la nota és 70 o més però menys de 80, imprimeix "Bé".
  4. elif nota >= 60: Si la nota és 60 o més però menys de 70, imprimeix "Suficient".
  5. else: Si cap de les condicions anteriors es compleix, imprimeix "Insuficient".

Bucles amb Múltiples Condicions

Els bucles amb múltiples condicions ens permeten controlar el flux del bucle amb més precisió.

Exemple en Python

i = 0
while i < 10:
    if i % 2 == 0:
        print(f"{i} és parell")
    else:
        print(f"{i} és senar")
    i += 1

Explicació

  1. while i < 10: El bucle continua mentre i sigui menor que 10.
  2. if i % 2 == 0: Si i és parell, imprimeix que és parell.
  3. else: Si i no és parell, imprimeix que és senar.
  4. i += 1: Incrementa i en 1 en cada iteració.

Estructures de Control amb Interrupcions

Les estructures de control amb interrupcions com break i continue ens permeten sortir d'un bucle o saltar a la següent iteració respectivament.

Exemple en Python

for i in range(10):
    if i == 5:
        break
    print(i)

Explicació

  1. for i in range(10): Itera de 0 a 9.
  2. if i == 5: Si i és igual a 5, surt del bucle.
  3. print(i): Imprimeix el valor de i en cada iteració fins que i sigui 5.

Gestió d'Excepcions

La gestió d'excepcions ens permet manejar errors de manera controlada, evitant que el programa es bloquegi.

Exemple en Python

try:
    resultat = 10 / 0
except ZeroDivisionError:
    print("No es pot dividir per zero")

Explicació

  1. try: Intenta executar el codi dins del bloc try.
  2. except ZeroDivisionError: Si es produeix una divisió per zero, executa el codi dins del bloc except.

Exercicis Pràctics

Exercici 1: Condicionals en Cascada

Escriu un programa que determini la categoria d'edat d'una persona basada en la seva edat.

edat = int(input("Introdueix la teva edat: "))

# Solució
if edat < 13:
    print("Infant")
elif edat < 20:
    print("Adolescent")
elif edat < 65:
    print("Adult")
else:
    print("Sènior")

Exercici 2: Bucles amb Múltiples Condicions

Escriu un programa que imprimeixi els nombres de l'1 al 20, però que indiqui si el nombre és múltiple de 3, 5 o ambdós.

# Solució
for i in range(1, 21):
    if i % 3 == 0 and i % 5 == 0:
        print(f"{i} és múltiple de 3 i 5")
    elif i % 3 == 0:
        print(f"{i} és múltiple de 3")
    elif i % 5 == 0:
        print(f"{i} és múltiple de 5")
    else:
        print(i)

Exercici 3: Gestió d'Excepcions

Escriu un programa que demani a l'usuari que introdueixi dos nombres i que imprimeixi el resultat de la seva divisió. Gestiona l'error de divisió per zero.

# Solució
try:
    num1 = float(input("Introdueix el primer nombre: "))
    num2 = float(input("Introdueix el segon nombre: "))
    resultat = num1 / num2
    print(f"El resultat de la divisió és: {resultat}")
except ZeroDivisionError:
    print("Error: No es pot dividir per zero")
except ValueError:
    print("Error: Si us plau, introdueix nombres vàlids")

Conclusió

En aquesta secció, hem après sobre les estructures de control avançades, incloent condicionals en cascada, bucles amb múltiples condicions, estructures de control amb interrupcions i la gestió d'excepcions. Aquestes tècniques ens permeten escriure codi més robust i flexible. Practica aquests conceptes amb els exercicis proporcionats per consolidar el teu coneixement.

© Copyright 2024. Tots els drets reservats