Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТЕМА 5. ОПЕРАТОРИ РОЗГАЛУЖЕННЯ ТА ЦИКЛИ У C#..docx
Скачиваний:
5
Добавлен:
22.11.2019
Размер:
53.48 Кб
Скачать

4: Інструкція;

5: break;

6: case костанта2:

7: Інструкція;

8: break;

9: ...

10: default:

11: Інструкція;

12: break;

13: }

Елемент вираз інструкції switch повинен мати цілочисельний тип (наприклад, char, byte, short або int ) або тип string. Вирази, що мають типи з плаваючою крапкою, не дозволені. Дуже часто як switch-вирази використовується просто змінна; case-константи мають бути літералами, тип яких сумісний з типом заданого виразу. При цьому жодні дві case-константи в одній switch-інструкції не можуть мати ідентичних значень.

Послідовність інструкцій default-гілки виконується в тому випадку, якщо жодна із заданих case-констант не збіжиться з результатом обчислення switch-виразу. Гілка default необов'язкова. Якщо вона відсутня, то при неспівпаданні результату виразу ні з однією з case-констант жодна дія виконана не буде. Якщо такий збіг все-таки станеться, будуть виконані інструкції, відповідні даній case-гілці до тих пір, поки не зустрінеться інструкція break.

Використання switch-інструкції демонструється у наступній програмі.

Приклад 4. Використання switch.

1: Static void Main(string[] args)

2: {

3: Console.WriteLine(" Введіть цифру від 1 до 5.");

4: int a = Convert.ToInt32(Console.ReadLine());

5: switch (a)

6: {

7: case 1:

8: Console.WriteLine("Ви ввели 1");

9: break;

10: case 2:

11: Console.WriteLine("Ви ввели 2");

12: break;

13: case 3:

14: Console.WriteLine("Ви ввели 3");

15: break;

16: case 4:

17: Console.WriteLine("Ви ввели 4");

18: break;

19: case 5:

20: Console.WriteLine("Ви ввели 5");

21: break;

22: default:

23: Console.WriteLine(" Ви промахнулися");

24: break;

25: }

26: }

У випадку, якщо потрібно щоб одна і та ж сама інструкція виконалася для кількох констант одразу використовується наступна конструкція.

Приклад 5. Використання switch.

1: Static void Main(string[] args)

2: {

3: Console.WriteLine(" Введіть цифру від 1 до 5.");

4: int a = Convert.ToInt32(Console.ReadLine());

5: switch (a)

6: {

7: case 1:

8: case 2:

9: case 3:

10: Console.WriteLine("Ви ввели 1 або 2 або 3");

11: break;

12: case 4:

13: Console.WriteLine("Ви ввели 4");

14: break;

15: case 5:

16: Console.WriteLine("Ви ввели 5");

17: break;

18: default:

19: Console.WriteLine(" Ви промахнулися");

20: break;

21: }

22: }

ТЕРНАРНИЙ ОПЕРАТОР

Одним з хороших операторів С# є тернарный оператор ?:. Оператор ?: часто використовується для заміни певних типів конструкцій if-else. Оператор ?: називається тернарним, оскільки він працює з трьома виразами. Його загальний формат запису має такий вигляд:

Вираз1 1 ? Вирар2 : Вираз3;

Тут Вираз1 повинен мати тип bool. Типи елементів Вираз2 і Вираз3 мають бути однакові. Зверніть увагу на використання і розміщення двокрапки.

Значення ?:-вираз визначається таким чином. Обчислюється Вираз1. Якщо він виявляється істинним, обчислюється Вираз2, і результат його обчислення стає значенням всього ?-виразу. Якщо результат обчислення елементу Вираз1 виявляється помилковим, значенням всього ?-виразу стає результат обчислення елементу ВиразЗ. Розглянемо приклад, в якому змінні absval присвоюється значення змінної a по модулю.

Приклад 6. Тернарний оператор. Знаходження модуля числа.