Izjava o preklopu C # (z primeri)

V tem članku bomo izvedeli več o stavku switch v jeziku C # in kako jih uporabiti s primeri.

Stavek Switch lahko uporabite za zamenjavo stavka if … else if v C #. Prednost uporabe preklopi, če … drugače, če je stavek kode, bo s preklopom videti veliko bolj čista in berljiva.

Sintaksa stavka switch je:

 stikalo (spremenljivka / izraz) (vrednost primera1: // Stavki se izvajajo, če izraz (ali spremenljivka) = vrednost1 prelomi; primer vrednosti2: // Stavki se izvršijo, če izraz (ali spremenljivka) = vrednost1 prelomi; / Izjave izvršene, če se noben primer ne ujema) 

Stavek stikala ovrednoti izraz (ali spremenljivko) in primerja njegovo vrednost z vrednostmi (ali izrazi) vsakega primera (vrednost1, vrednost2,…). Ko najde ujemajočo se vrednost, se stavki v tem primeru izvršijo.

Če se noben od zgornjih primerov ne ujema z izrazom, se stavki v defaultbloku izvršijo. Privzeti stavek na koncu stikala je podoben bloku else v stavku if else.

Vendar pa je težava s stavkom preklopa, ko poišče ujemajočo se vrednost, izvede vse stavke po njej do konca preklopnega bloka.

Da bi se temu izognili, breakna koncu vsakega primera uporabimo izjavo. Stavek break ustavi program pri izvajanju ne ujemajočih se stavkov tako, da zaključi izvajanje stavka switch.

Če želite izvedeti več o izjavi break, obiščite izjavo C # break.

Primer 1: Izjava o stikalu C #

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

Ko zaženemo program, bo rezultat:

 Vnesite abecedo X Ne samoglasnik 

V tem primeru je uporabnik pozvan k vnosu abecede. Abeceda se pretvori v male črke z uporabo ToLower()metode, če je v velikih črkah.

Nato stavek switch preveri, ali je abeceda, ki jo vnese uporabnik, katera od a, e, i, o or u.

Če se eden od primerov ujema, Vowelse natisne, drugače se nadzor preklopi v privzeti blok in Not a vowelse natisne kot izhod.

Ker so izhodi za vse samoglasnike enaki, lahko primere združimo kot:

Primer 2: Izjava stikala C # z razvrščenimi primeri

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

Rezultat obeh programov je enak. V zgornjem programu vsi samoglasniki natisnejo izhod Vowelin prelome iz stavka switch.

Čeprav stavek switch omogoča, da je koda videti bolj čista, kot če … drugače, če stavek, je stikalo omejeno na delo z omejenimi vrstami podatkov. Stavek preklopa v jeziku C # deluje samo z:

  • Primitivni podatkovni tipi: bool, char in integralni tip
  • Našteti tipi (Enum)
  • String razred
  • Ničljive vrste zgornjih podatkovnih tipov

Primer 3: Preprost program kalkulatorja z uporabo izjave stikala C #

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

Ko zaženemo program, bo rezultat:

 Vnesite prvo številko: -13.11 Vnesite drugo številko: 2.41 Vnesite operator (+, -, *, /): * -13.11 * 2.41 = -31.5951 

Zgornji program za uporabnika vnese dva operanda in operaterja ter izvede operacijo na podlagi operaterja.

Vhodi so vzeti od uporabnika z uporabo metode ReadLine()in Read(). Če želite izvedeti več, obiščite C # Basic Input and Output.

Program za odločanje uporablja izjavo o primeru preklopa. Lahko pa uporabimo lestev if-else if za izvedbo iste operacije.

Zanimive Članki...