C # switch Statement (esimerkkien kanssa)

Tässä artikkelissa opitaan C #: n kytkinlausekkeesta ja niiden käytöstä esimerkkien kanssa.

Switch-käskyä voidaan käyttää korvaamaan if … else if-lause C #: ssä. Vaihdon käytön etu, jos… muuten, jos lause on koodit, näyttää paljon puhtaammalta ja luettavammalta kytkimellä.

Kytkinlausekkeen syntaksi on:

 kytkin (muuttuja / lauseke) (tapausarvo1: // Lausekkeet suoritetaan, jos lauseke (tai muuttuja) = arvo1 rikkoo; tapausarvo2: // Lausekkeet suoritetaan, jos lauseke (tai muuttuja) = arvo1 rikkoo;……………… oletus: / / Toteutetut lausunnot, jos mikään tapaus ei vastaa 

Switch-käsky arvioi lausekkeen (tai muuttujan) ja vertaa sen arvoa kunkin tapauksen arvoihin (tai lausekkeisiin) (arvo1, arvo2,…). Kun se löytää vastaavan arvon, tapauksen sisällä olevat lauseet suoritetaan.

Mutta jos mikään yllä olevista tapauksista ei vastaa lauseketta, lauseen sisällä olevat lauseet defaultsuoritetaan. Oletuslauseke kytkimen lopussa on samanlainen kuin if-lauseen toinen lohko.

Kytkinlausekkeen ongelma on kuitenkin se, että kun vastaava arvo löytyy, se suorittaa kaikki sen jälkeen käskyt kytkinlohkon loppuun asti.

Tämän välttämiseksi käytämme breaklauseita kunkin tapauksen lopussa. Break-lause estää ohjelman suorittamasta ei-yhteensopivia lauseita lopettamalla switch-lauseen suorittamisen.

Lisätietoja taukolausekkeesta on C # -katkoslausekkeessa.

Esimerkki 1: C # switch Statement

 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; ) ) ) ) 

Kun suoritamme ohjelmaa, tulos on:

 Kirjoita aakkoset X Ei vokaalia 

Tässä esimerkissä käyttäjää kehotetaan syöttämään aakkoset. Aakkoset muunnetaan pieniksi käyttämällä ToLower()menetelmää, jos ne ovat isoja.

Sitten kytkinlauseke tarkistaa, onko käyttäjän kirjoittama aakkoset jokin seuraavista a, e, i, o or u.

Jos jokin tapauksista täsmää, Vowelse tulostetaan, muuten ohjaus siirtyy oletuslohkoon ja Not a voweltulostetaan tulosteena.

Koska kaikkien vokaalien lähtö on sama, voimme liittää tapaukset seuraavasti:

Esimerkki 2: C # switch -lauseke ryhmiteltyjen tapausten kanssa

 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; ) ) ) ) 

Molempien ohjelmien tulos on sama. Yllä olevassa ohjelmassa kaikki vokaalit tulostavat tuloksen Vowelja katkeavat kytkinlausekkeesta.

Vaikka kytkinlauseke saa koodin näyttämään puhtaammalta kuin jos… muuten, jos käsky, kytkin on rajoitettu toimimaan rajoitettujen tietotyyppien kanssa. C #: n Switch-lause toimii vain:

  • Primitiiviset tietotyypit: bool, char ja integraalityyppi
  • Luetellut tyypit (Enum)
  • Jousiluokka
  • Yllä olevien tietotyyppien nollaamattomat tyypit

Esimerkki 3: Yksinkertainen laskinohjelma, jossa käytetään C # -kytkimen lausetta

 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; ) ) ) ) 

Kun suoritamme ohjelmaa, tulos on:

 Syötä ensimmäinen numero: -13.11 Anna toinen numero: 2.41 Syötä operaattori (+, -, *, /): * -13.11 * 2.41 = -31.5951 

Yllä oleva ohjelma ottaa käyttäjältä kaksi operandia ja operaattorin ja suorittaa operaation operaattorin perusteella.

Tulot otetaan käyttäjältä käyttäen ReadLine()ja Read()-menetelmää. Lisätietoja on artikkelissa C # Basic Input and Output.

Ohjelma käyttää vaihdon tapauslauseketta päätöksentekoon. Vaihtoehtoisesti voimme käyttää if-else if tikkaita saman toiminnon suorittamiseen.

Mielenkiintoisia artikkeleita...