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,stringo 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
- Definició de la variable
dia: Es defineix una variablediaamb el valor3. - Sentència
switch: La sentènciaswitchcompara el valor dediaamb els valors dels diferents casos. - Casos: Si
diaés3, s'executa el bloc de codi associat al cas3, que imprimeix "Dimecres". default: Sidiano coincideix amb cap dels casos, s'executa el bloc de codi deldefault, 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
- Oblidar el
break: Si oblides elbreakal final d'un cas, el codi continuarà executant-se en els casos següents fins que trobi un altrebreako arribi al final de la sentènciaswitch. - No incloure un cas
default: Tot i que és opcional, és una bona pràctica incloure un casdefaultper gestionar valors inesperats.
Consells
- Utilitza la sentència
switchquan 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.
Curs de Programació en C#
Mòdul 1: Introducció al C#
- Introducció al C#
- Configuració de l'Entorn de Desenvolupament
- Programa Hello World
- Sintaxi i Estructura Bàsica
- Variables i Tipus de Dades
Mòdul 2: Estructures de Control
Mòdul 3: Programació Orientada a Objectes
Mòdul 4: Conceptes Avançats de C#
- Interfícies
- Delegats i Esdeveniments
- Genèrics
- Col·leccions
- LINQ (Consulta Integrada al Llenguatge)
- Programació Asíncrona
Mòdul 5: Treballant amb Dades
Mòdul 6: Temes Avançats
- Reflexió
- Atributs
- Programació Dinàmica
- Gestió de Memòria i Recollida d'Escombraries
- Multifil i Programació Paral·lela
Mòdul 7: Construcció d'Aplicacions
Mòdul 8: Millors Pràctiques i Patrons de Disseny
- Estàndards de Codificació i Millors Pràctiques
- Patrons de Disseny
- Proves Unitàries
- Revisió de Codi i Refactorització
