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
- Definició de la variable
dia
: Es defineix una variabledia
amb el valor3
. - Sentència
switch
: La sentènciaswitch
compara el valor dedia
amb els valors dels diferents casos. - Casos: Si
dia
és3
, s'executa el bloc de codi associat al cas3
, que imprimeix "Dimecres". default
: Sidia
no 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 elbreak
al final d'un cas, el codi continuarà executant-se en els casos següents fins que trobi un altrebreak
o arribi al final de la sentènciaswitch
. - No incloure un cas
default
: Tot i que és opcional, és una bona pràctica incloure un casdefault
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.
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ó