Оператор переключения C # (с примерами)

В этой статье мы узнаем об операторах switch в C # и о том, как их использовать с примерами.

Оператор Switch может использоваться для замены оператора if… else if в C #. Преимущество использования оператора switch over if… else if в том, что с помощью switch коды будут выглядеть намного чище и удобочитаемы.

Синтаксис оператора switch:

 switch (переменная / выражение) (case value1: // Операторы выполняются, если выражение (или переменная) = value1 break; case value2: // Операторы выполняются, если выражение (или переменная) = value1 break;……………… по умолчанию: / / Операторы выполняются, если ни один регистр не соответствует) 

Оператор switch оценивает выражение (или переменную) и сравнивает его значение со значениями (или выражением) каждого случая (значение1, значение2,…). Когда он находит совпадающее значение, выполняются инструкции внутри этого случая.

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

Однако проблема с оператором switch заключается в том, что при нахождении соответствующего значения он выполняет все операторы после него до конца блока переключения.

Чтобы этого избежать, мы используем breakоператор в конце каждого случая. Оператор break останавливает выполнение программой несовпадающих операторов, завершая выполнение оператора switch.

Чтобы узнать больше об операторе break, посетите C # оператор break.

Пример 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()метода, если он в верхнем регистре.

Затем оператор switch проверяет, соответствует ли введенный пользователем алфавит из 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 делает код более чистым, чем оператор if… else if, switch ограничен для работы с ограниченными типами данных. Оператор Switch в C # работает только с:

  • Примитивные типы данных: bool, char и целочисленный тип
  • Перечислимые типы (Enum)
  • Класс String
  • Обнуляемые типы вышеуказанных типов данных

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

Когда мы запустим программу, вывод будет:

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

Вышеупомянутая программа принимает два операнда и оператор в качестве входных данных от пользователя и выполняет операцию на основе оператора.

Входы принимаются от пользователя , используя ReadLine()и Read()метод. Чтобы узнать больше, посетите C # Basic Input and Output.

Программа использует оператор switch case для принятия решения. В качестве альтернативы мы можем использовать лестницу if-else if для выполнения той же операции.

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