- •Тема 5. Оператори розгалуження та цикли у c#.
- •1. Оператори розгалуження.
- •1: Static void Main(string[] args)
- •1: If(умова)
- •4: Інструкція;
- •7: Інструкція;
- •11: Інструкція;
- •1: Static void Main(string[] args)
- •1: Static void Main(string[] args)
- •1: Static void Main(string[] args)
- •2. Оператори циклу.
- •3: Інструкція;
- •1: Static void Main(string[] args)
- •1: Static void Main(string[] args)
- •3: Інструкція;
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. Тернарний оператор. Знаходження модуля числа.