Изявление за превключване на C # (с примери)

В тази статия ще научим за оператора за превключване в C # и как да ги използваме с примери.

Изявлението за превключване може да се използва за заместване на оператора if … else if в C #. Предимството на използването на превключване, ако … в противен случай кодовете ще изглеждат много по-изчистени и четливи с превключвателя.

Синтаксисът на оператора за превключване е:

 превключвател (променлива / израз) (случай стойност1: // Изявления, изпълнени, ако израз (или променлива) = стойност1 прекъсване; случай стойност2: // Изявления, изпълнени, ако израз (или променлива) = стойност1 прекъсване; … … … … … … по подразбиране: / / Изявления, изпълнени, ако няма съвпадение на случая) 

Операторът за превключване оценява израза (или променливата) и сравнява стойността му със стойностите (или израза) за всеки случай (стойност1, стойност2, …). Когато намери съответстващата стойност, изразите вътре в този случай се изпълняват.

Но ако нито един от горните случаи не съответства на израза, инструкциите вътре в defaultблока се изпълняват. Операторът по подразбиране в края на превключвателя е подобен на блока else в оператора if else.

Проблем с оператора за превключване обаче е, че когато бъде намерена съответстващата стойност, той изпълнява всички изрази след него до края на блока на превключвателя.

За да избегнем това, използваме breakизявление в края на всеки случай. Операторът break спира програмата да изпълнява несъвпадащи изрази чрез прекратяване на изпълнението на оператор switch.

За да научите повече за изявлението за почивка, посетете C # break statement.

Пример 1: Изявление за превключвател 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; ) ) ) ) 

Когато стартираме програмата, изходът ще бъде:

 Въведете азбука X Не гласна 

В този пример потребителят е подканен да въведе азбука. Азбуката се преобразува в малка буква с помощта на ToLower()метод, ако е с главни букви.

След това операторът за превключване проверява дали азбуката, въведена от потребителя, е някоя от a, e, i, o or u.

Ако един от случаите съвпада, Vowelсе отпечатва, в противен случай контролата отива към блока по подразбиране и Not a vowelсе отпечатва като изход.

Тъй като изходът за всички гласни е еднакъв, можем да обединим случаите като:

Пример 2: Изявление на превключвател 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': case 'e': case 'i': case 'o': case 'u': Console.WriteLine("Vowel"); break; default: Console.WriteLine("Not a vowel"); break; ) ) ) ) 

Резултатът от двете програми е еднакъв. В горната програма всички гласни отпечатват изхода Vowelи прекъсванията от превключвателя.

Въпреки че операторът switch прави кода по-чист, отколкото ако… иначе ако операторът, switch е ограничен за работа с ограничени типове данни. Изявлението за превключване в C # работи само с:

  • Примитивни типове данни: bool, char и интегрален тип
  • Изброени типове (Enum)
  • Струнен клас
  • Типове типове данни с горни стойности

Пример 3: Проста програма за калкулатор, използваща 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; ) ) ) ) 

Когато стартираме програмата, изходът ще бъде:

 Въведете първо число: -13.11 Въведете второ число: 2.41 Въведете оператор (+, -, *, /): * -13.11 * 2.41 = -31.5951 

Горната програма приема два операнда и оператор като вход от потребителя и извършва операцията въз основа на оператора.

Входовете се вземат от потребителя, използвайки метода ReadLine()и Read(). За да научите повече, посетете C # Basic Input and Output.

Програмата използва декларация за случай на превключване за вземане на решение. Като алтернатива можем да използваме if-else if стълба, за да извършим същата операция.

Интересни статии...