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ència switch.
  • 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 de dia.
  • Com que dia és 3, s'executa el bloc de codi associat al case 3, que imprimeix "Dimecres".
  • La instrucció break finalitza l'execució del bloc de codi del case 3 i surt de la sentència switch.

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 un break o arribi al final de la sentència switch.
  • No incloure un default: Tot i que és opcional, és una bona pràctica incloure un cas default 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.

© Copyright 2024. Tots els drets reservats