Заява про перемикач C # (з прикладами)

У цій статті ми дізнаємося про оператор switch у C # та як використовувати їх на прикладах.

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

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

 перемикач (змінна / вираз) (case value1: // Виписки виконуються, якщо вираз (або змінна) = value1 break; case value2: // Заяви виконуються, якщо вираз (або змінна) = value1 break;……………… за замовчуванням: / / Заяви виконуються, якщо жоден випадок не відповідає) 

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

Але, якщо жоден із наведених випадків не відповідає виразу, оператори всередині defaultблоку виконуються. Оператор за замовчуванням у кінці комутатора подібний до блоку else у операторі if else.

Однак проблема з оператором switch полягає в тому, що коли знайдене відповідне значення, воно виконує всі оператори після нього до кінця блоку switch.

Щоб уникнути цього, ми використовуємо breakтвердження в кінці кожного випадку. Оператор break зупиняє програму у виконанні невідповідних операторів, припиняючи виконання оператора switch.

Щоб дізнатись більше про оператор break, відвідайте 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()методу, якщо він у верхньому регістрі.

Потім оператор 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 робить код виглядає чистішим, ніж якщо … інакше як оператор if, switch обмежений для роботи з обмеженими типами даних. Інструкція Switch у C # працює лише з:

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

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

Програма використовує випадок випадку перемикання для прийняття рішень. Як варіант, ми можемо використовувати if-else if драбину для виконання тієї ж операції.

Цікаві статті...