Introducció

Les sentències switch en C# són una estructura de control que permet seleccionar una de moltes branques de codi a executar, basant-se en el valor d'una expressió. És una alternativa més neta i llegible a múltiples sentències if-else quan es tracta de comparar una variable amb diversos valors constants.

Sintaxi Bàsica

La sintaxi bàsica d'una sentència switch és la següent:

switch (expressió)
{
    case valor1:
        // Codi a executar si expressió == valor1
        break;
    case valor2:
        // Codi a executar si expressió == valor2
        break;
    // Més casos...
    default:
        // Codi a executar si cap dels casos anteriors coincideix
        break;
}

Explicació dels Components

  • expressió: És l'expressió que es compara amb els valors dels diferents casos. Ha de ser de tipus integral, char, string o un tipus d'enumeració.
  • case valor:: Cada cas representa un valor amb el qual es compara l'expressió. Si coincideix, s'executa el bloc de codi associat.
  • break: Aquesta instrucció finalitza l'execució del cas actual i evita que el codi continuï executant-se en els casos següents.
  • default:: Opcional. S'executa si cap dels casos anteriors coincideix amb l'expressió.

Exemple Pràctic

Vegem un exemple pràctic per entendre millor com funciona una sentència switch:

using System;

class Program
{
    static void Main()
    {
        int dia = 3;

        switch (dia)
        {
            case 1:
                Console.WriteLine("Dilluns");
                break;
            case 2:
                Console.WriteLine("Dimarts");
                break;
            case 3:
                Console.WriteLine("Dimecres");
                break;
            case 4:
                Console.WriteLine("Dijous");
                break;
            case 5:
                Console.WriteLine("Divendres");
                break;
            case 6:
                Console.WriteLine("Dissabte");
                break;
            case 7:
                Console.WriteLine("Diumenge");
                break;
            default:
                Console.WriteLine("Dia invàlid");
                break;
        }
    }
}

Explicació del Codi

  1. Definició de la variable dia: Es defineix una variable dia amb el valor 3.
  2. Sentència switch: La sentència switch compara el valor de dia amb els valors dels diferents casos.
  3. Casos: Si dia és 3, s'executa el bloc de codi associat al cas 3, que imprimeix "Dimecres".
  4. default: Si dia no coincideix amb cap dels casos, s'executa el bloc de codi del default, que imprimeix "Dia invàlid".

Exercicis Pràctics

Exercici 1

Escriu un programa que llegeixi un caràcter del teclat i determini si és una vocal o una consonant utilitzant una sentència switch.

Solució

using System;

class Program
{
    static void Main()
    {
        Console.WriteLine("Introdueix un caràcter:");
        char lletra = Console.ReadKey().KeyChar;
        Console.WriteLine();

        switch (lletra)
        {
            case 'a':
            case 'e':
            case 'i':
            case 'o':
            case 'u':
            case 'A':
            case 'E':
            case 'I':
            case 'O':
            case 'U':
                Console.WriteLine("És una vocal.");
                break;
            default:
                Console.WriteLine("És una consonant.");
                break;
        }
    }
}

Exercici 2

Escriu un programa que llegeixi un número del 1 al 12 i imprimeixi el nom del mes corresponent utilitzant una sentència switch.

Solució

using System;

class Program
{
    static void Main()
    {
        Console.WriteLine("Introdueix un número del 1 al 12:");
        int mes = int.Parse(Console.ReadLine());

        switch (mes)
        {
            case 1:
                Console.WriteLine("Gener");
                break;
            case 2:
                Console.WriteLine("Febrer");
                break;
            case 3:
                Console.WriteLine("Març");
                break;
            case 4:
                Console.WriteLine("Abril");
                break;
            case 5:
                Console.WriteLine("Maig");
                break;
            case 6:
                Console.WriteLine("Juny");
                break;
            case 7:
                Console.WriteLine("Juliol");
                break;
            case 8:
                Console.WriteLine("Agost");
                break;
            case 9:
                Console.WriteLine("Setembre");
                break;
            case 10:
                Console.WriteLine("Octubre");
                break;
            case 11:
                Console.WriteLine("Novembre");
                break;
            case 12:
                Console.WriteLine("Desembre");
                break;
            default:
                Console.WriteLine("Número invàlid.");
                break;
        }
    }
}

Errors Comuns i Consells

Errors Comuns

  1. Oblidar el break: Si oblides el break al final d'un cas, el codi continuarà executant-se en els casos següents fins que trobi un altre break o arribi al final de la sentència switch.
  2. No incloure un cas default: Tot i que és opcional, és una bona pràctica incloure un cas default per gestionar valors inesperats.

Consells

  • Utilitza la sentència switch quan tinguis múltiples condicions basades en el mateix valor. Això farà que el teu codi sigui més net i llegible.
  • Agrupa casos que tinguin el mateix bloc de codi per evitar duplicació.

Conclusió

Les sentències switch són una eina poderosa per gestionar múltiples condicions de manera clara i eficient. Amb la pràctica, aprendràs a utilitzar-les per simplificar el teu codi i fer-lo més llegible. En la següent secció, explorarem la gestió d'excepcions, una part crucial per escriure codi robust i fiable.

© Copyright 2024. Tots els drets reservats