C # switch-verklaring (met voorbeelden)

In dit artikel zullen we leren over switch-instructie in C # en hoe je deze kunt gebruiken met voorbeelden.

Switch-instructie kan worden gebruikt om de if… else if-instructie in C # te vervangen. Het voordeel van het gebruik van switch over if… else if statement is dat de codes er veel schoner en leesbaarder uitzien met switch.

De syntaxis van de instructie switch is:

 switch (variabele / uitdrukking) (case waarde1: // Verklaringen uitgevoerd als uitdrukking (of variabele) = waarde1 breken; hoofdletter waarde2: // Verklaringen uitgevoerd als uitdrukking (of variabele) = waarde1 onderbreking; … … … … … … standaard: / / Verklaringen uitgevoerd als geen enkele case overeenkomt) 

De instructie switch evalueert de uitdrukking (of variabele) en vergelijkt de waarde ervan met de waarden (of uitdrukking) van elk geval (waarde1, waarde2,…). Als het de overeenkomende waarde vindt, worden de instructies in die case uitgevoerd.

Maar als geen van de bovenstaande gevallen overeenkomt met de uitdrukking, worden de instructies in het defaultblok uitgevoerd. De standaardinstructie aan het einde van de switch is vergelijkbaar met het else-blok in de if else-instructie.

Een probleem met de switch-instructie is echter dat wanneer de overeenkomende waarde wordt gevonden, deze alle instructies daarna uitvoert tot het einde van het switch-blok.

Om dit te voorkomen, gebruiken we een breakverklaring aan het einde van elke case. De break-instructie voorkomt dat het programma niet-overeenkomende instructies uitvoert door de uitvoering van de switch-instructie te beëindigen.

Bezoek C # break statement voor meer informatie over break-statement.

Voorbeeld 1: C # switch-instructie

 using System; namespace Conditional ( class SwitchCase ( public static void Main(string() args) ( char ch; Console.WriteLine("Enter an alphabet"); ch = Convert.ToChar(Console.ReadLine()); switch(Char.ToLower(ch)) ( case 'a': Console.WriteLine("Vowel"); break; case 'e': Console.WriteLine("Vowel"); break; case 'i': Console.WriteLine("Vowel"); break; case 'o': Console.WriteLine("Vowel"); break; case 'u': Console.WriteLine("Vowel"); break; default: Console.WriteLine("Not a vowel"); break; ) ) ) ) 

Wanneer we het programma uitvoeren, is de uitvoer:

 Voer een alfabet in X Geen klinker 

In dit voorbeeld wordt de gebruiker gevraagd een alfabet in te voeren. Het alfabet wordt met behulp van de ToLower()methode naar kleine letters geconverteerd als het in hoofdletters staat.

Vervolgens controleert de instructie switch of het door de gebruiker ingevoerde alfabet een van is a, e, i, o or u.

Als een van de case overeenkomt, Vowelwordt afgedrukt, anders gaat de besturing naar het standaardblok en Not a vowelwordt afgedrukt als uitvoer.

Omdat de uitvoer voor alle klinkers hetzelfde is, kunnen we de gevallen samenvoegen als:

Voorbeeld 2: C # switch Statement met gegroepeerde cases

 using System; namespace Conditional ( class SwitchCase ( public static void Main(string() args) ( char ch; Console.WriteLine("Enter an alphabet"); ch = Convert.ToChar(Console.ReadLine()); switch(Char.ToLower(ch)) ( case 'a': case 'e': case 'i': case 'o': case 'u': Console.WriteLine("Vowel"); break; default: Console.WriteLine("Not a vowel"); break; ) ) ) ) 

De output van beide programma's is hetzelfde. In het bovenstaande programma drukken alle klinkers de uitvoer Vowelen de onderbrekingen van de switch-instructie af.

Hoewel de instructie switch de code er schoner laat uitzien dan de instructie if… else if, is switch beperkt tot het werken met beperkte gegevenstypen. Switch-instructie in C # werkt alleen met:

  • Primitieve gegevenstypen: bool, char en integraal type
  • Opgesomde typen (Enum)
  • String Klasse
  • Nulbare typen van bovenstaande gegevenstypen

Voorbeeld 3: eenvoudig rekenprogramma met behulp van C # switch Statement

 using System; namespace Conditional ( class SwitchCase ( public static void Main(string() args) ( char op; double first, second, result; Console.Write("Enter first number: "); first = Convert.ToDouble(Console.ReadLine()); Console.Write("Enter second number: "); second = Convert.ToDouble(Console.ReadLine()); Console.Write("Enter operator (+, -, *, /): "); op = (char)Console.Read(); switch(op) ( case '+': result = first + second; Console.WriteLine("(0) + (1) = (2)", first, second, result); break; case '-': result = first - second; Console.WriteLine("(0) - (1) = (2)", first, second, result); break; case '*': result = first * second; Console.WriteLine("(0) * (1) = (2)", first, second, result); break; case '/': result = first / second; Console.WriteLine("(0) / (1) = (2)", first, second, result); break; default: Console.WriteLine("Invalid Operator"); break; ) ) ) ) 

Wanneer we het programma uitvoeren, is de uitvoer:

 Voer eerste nummer in: -13.11 Voer tweede nummer in: 2.41 Voer operator in (+, -, *, /): * -13.11 * 2.41 = -31.5951 

Het bovenstaande programma heeft twee operanden en een operator als invoer van de gebruiker en voert de bewerking uit op basis van de operator.

De ingangen zijn ontleend aan de gebruiker van de ReadLine()en Read()werkwijze. Ga voor meer informatie naar C # Basisinvoer en -uitvoer.

Het programma gebruikt switch case statement voor besluitvorming. Als alternatief kunnen we de if-else if-ladder gebruiken om dezelfde bewerking uit te voeren.

Interessante artikelen...