En aquest tema, aprendrem sobre les sentències switch case
en ALGOL, una estructura de control que permet seleccionar una de moltes branques de codi per executar. Aquesta estructura és útil quan es volen comparar una variable amb múltiples valors possibles i executar diferents blocs de codi segons el valor de la variable.
Continguts
Què és una Sentència Switch Case?
Una sentència switch case
és una estructura de control que permet executar diferents blocs de codi basant-se en el valor d'una expressió. És una alternativa més clara i organitzada a l'ús de múltiples sentències if-else
.
Sintaxi de Switch Case en ALGOL
La sintaxi general d'una sentència switch case
en ALGOL és la següent:
switch (expressió) begin case valor1: // Bloc de codi per a valor1 break; case valor2: // Bloc de codi per a valor2 break; ... default: // Bloc de codi per defecte end switch;
Explicació de la Sintaxi
switch (expressió)
: L'expressió que es vol avaluar.case valor
: Cada cas representa un valor possible de l'expressió. Si l'expressió coincideix amb aquest valor, s'executa el bloc de codi associat.break;
: Aquesta instrucció finalitza l'execució del bloc de codi del cas actual i surt de la sentènciaswitch
.default
: Opcional. Aquest bloc de codi s'executa si cap dels casos coincideix amb el valor de l'expressió.
Exemple Pràctic
Vegem un exemple pràctic d'una sentència switch case
en ALGOL. Suposem que volem imprimir el nom del dia de la setmana basant-nos en un número (1 per dilluns, 2 per dimarts, etc.).
begin integer dia; dia := 3; switch (dia) begin case 1: print("Dilluns"); break; case 2: print("Dimarts"); break; case 3: print("Dimecres"); break; case 4: print("Dijous"); break; case 5: print("Divendres"); break; case 6: print("Dissabte"); break; case 7: print("Diumenge"); break; default: print("Número de dia invàlid"); end switch; end
Explicació de l'Exemple
- La variable
dia
s'inicialitza amb el valor 3. - La sentència
switch
avalua el valor dedia
. - Com que
dia
és 3, s'executa el bloc de codi associat alcase 3
, que imprimeix "Dimecres". - La instrucció
break
finalitza l'execució del bloc de codi delcase 3
i surt de la sentènciaswitch
.
Exercicis Pràctics
Exercici 1
Escriu un programa en ALGOL que, donat un número de mes (1 per gener, 2 per febrer, etc.), imprimeixi el nom del mes corresponent. Si el número no està entre 1 i 12, imprimeix "Número de mes invàlid".
Solució
begin integer mes; mes := 5; switch (mes) begin case 1: print("Gener"); break; case 2: print("Febrer"); break; case 3: print("Març"); break; case 4: print("Abril"); break; case 5: print("Maig"); break; case 6: print("Juny"); break; case 7: print("Juliol"); break; case 8: print("Agost"); break; case 9: print("Setembre"); break; case 10: print("Octubre"); break; case 11: print("Novembre"); break; case 12: print("Desembre"); break; default: print("Número de mes invàlid"); end switch; end
Errors Comuns i Consells
- Oblidar el
break
: Si oblides la instruccióbreak
, el programa continuarà executant els blocs de codi dels casos següents fins que trobi unbreak
o arribi al final de la sentènciaswitch
. - No incloure un
default
: Tot i que és opcional, és una bona pràctica incloure un casdefault
per gestionar valors inesperats. - Comparació de tipus incorrectes: Assegura't que els valors dels casos siguin del mateix tipus que l'expressió avaluada.
Conclusió
Les sentències switch case
són una eina poderosa per simplificar la lògica de selecció múltiple en els teus programes. Ara que coneixes la sintaxi i el funcionament bàsic, pots començar a utilitzar-les per fer el teu codi més clar i organitzat. En el proper mòdul, explorarem les funcions i procediments en ALGOL, que et permetran modularitzar i reutilitzar el teu codi de manera eficient.
Curs de Programació en ALGOL
Mòdul 1: Introducció a ALGOL
Mòdul 2: Sintaxi i Estructura Bàsica
- Estructura del Programa ALGOL
- Variables i Tipus de Dades
- Entrada i Sortida Bàsica
- Operadors i Expressions
Mòdul 3: Estructures de Control
Mòdul 4: Funcions i Procediments
- Definició de Funcions
- Paràmetres de Funció i Valors de Retorn
- Funcions Recursives
- Procediments en ALGOL
Mòdul 5: Estructures de Dades
Mòdul 6: Temes Avançats
Mòdul 7: Aplicacions Pràctiques
- Mètodes Numèrics
- Implementació d'Algorismes
- Construcció d'un Compilador Simple
- Estudis de Cas i Projectes