Оператор вибору switch
Зміст
- 1. Яке застосування в програмі має оператор вибору switch?
- 2. Який загальний вигляд має оператор варіанту switch?
- 3. Яке призначення блоку default в операторі switch?
- 4. Приклад використання оператора switch без використання блоку default.
- 5. Приклад використання оператора switch з використанням блоку default
- 6. Приклад програми, що використовує вкладений оператор switch
- 7. Застосування рядків в операторі switch. Приклад
- Зв’язані теми
Пошук на інших ресурсах:
1. Яке застосування в програмі має оператор вибору switch?
Оператор вибору switch забезпечує багатонаправлене розгалуження програми. Цей оператор дозволяє зробити вибір серед декількох альтернативних варіантів подальшого виконання програми.
В деяких випадках оператор вибору switch може мати більш ефективне використання ніж використання вкладених операторів if.
⇑
2. Який загальний вигляд має оператор варіанту switch?
Загальний вигляд оператора switch:
switch (вираз) { case константа1: оператори1; break; case константа2: оператори2; break; ... case константаN: операториN; break; ... default: оператори; break; }
де
- вираз – заданий вираз цілочисельного (char, byte, short, int), зчисленого або рядкового (string) типу;
- константа1, константа2, … константаN – константи вибору, тип яких має бути сумісний з типом виразу. Серед констант вибору не повинно бути двох з однаковими значеннями;
- оператор1, оператор2, …, операторN, оператор – послідовність операторів, які виконуються у випадку, коли значення константи вибору співпаде зі значенням виразу.
Якщо ні одна з констант вибору не співпадає з заданим виразом, то виконуються оператори, що слідують за словом default.
⇑
3. Яке призначення блоку default в операторі switch?
Оператори, вказані після слова default, виконуються в тому випадку, якщо значення виразу не співпадає з жодною з констант. Блок (гілка) default не є обов’язковою.
У випадку, коли блок default відсутній в операторі switch і жодна з констант не співпадає зі значенням виразу, то ніяких дій не виконується.
⇑
4. Приклад використання оператора switch без використання блоку default.
Дано ціле число n, що вказує номер дня тижня від 1 до 7. За вказаним номером n вивести назву відповідного дня тижня.
Фрагмент коду, що розв’язує дану задачу з використанням оператора switch:
int n; n = 7; switch (n) { case 1: label1.Text = "Понеділок"; break; case 2: label1.Text = "Вівторок"; break; case 3: label1.Text = "Середа"; break; case 4: label1.Text = "Четвер"; break; case 5: label1.Text = "П'ятниця"; break; case 6: label1.Text = "Субота"; break; case 7: label1.Text = "Неділя"; break; }
⇑
5. Приклад використання оператора switch з використанням блоку default.
Написати фрагмент програмного коду, який за заданим номером місяця n визначає кількість днів у цьому місяці. Кількість днів заноситься у змінну k.
... int n, k; ... switch (n) { case 2: k = 28; break; case 4: case 6: case 9: case 11: k = 30; break; default: k = 31; break; } ...
⇑
6. Приклад програми, що використовує вкладений оператор switch
Оператор switch може бути вкладеним в інший управляючий оператор, яким може бути:
- оператор умовного переходу if;
- оператор вибору switch;
- оператор циклу for;
- оператор циклу while;
- оператор циклу do..while;
- оператор циклу foreach.
Кількість рівнів вкладення може бути довільною. Отже, і оператор switch може розміщуватись на довільному рівні вкладення.
У прикладі, в операторі switch розміщуються вкладений оператор if та вкладений оператор switch.
Програма обчислює кількість днів у місяці на основі введеного значення номера місяця month та року year. Враховується високосний рік, чи не високосний.
Текст програми, створеної за шаблоном Console Application, наступний
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication8 { class Program { static void Main(string[] args) { // Вкладений оператор switch int year; // номер року int month; // місяць в році int days; // кількість днів у році // ввести номер року Console.Write("Year = "); year = Convert.ToInt32(Console.ReadLine()); Console.Write("Month = "); month = Convert.ToInt32(Console.ReadLine()); // оператор switch, який містить інший вкладений оператор switch switch (month) { case 4: case 6: case 9: case 11: days = 30; break; case 2: bool f; // прапорець, що визначає, чи високосний рік // вкладений оператор if if (year % 400 == 0) f = true; else if (year % 100 == 0) f = false; else if (year % 4 == 0) f = true; else f = false; // вкладений оператор switch switch (f) { case true: days = 29; break; default: days = 28; break; } break; default: days = 31; break; } Console.WriteLine("Days = {0}", days); } } }
Результат виконання програми
Year = 2100 Month = 2 Days = 28
⇑
7. Застосування рядків в операторі switch. Приклад
Крім цілочисельних даних, в операторі switch можуть бути використані рядки символів.
Приклад. У прикладі за назвою місяця виводиться кількість днів у цьому місяці. Приймається, що в лютому 28 днів.
using System; namespace ConsoleApp12 { class Program { static void Main(string[] args) { // Використання рядків в операторі вибору switch string month; // назва місяця // 1. Ввести назву місяця month = Console.ReadLine(); // 2. Вивести кількість днів у місяці switch (month) { case "January": case "March": case "May": case "July": case "August": case "October": case "December": Console.WriteLine("Number of days = 31"); break; case "February": Console.WriteLine("Number of days = 28"); break; case "April": case "June": case "September": case "November": Console.WriteLine("Number of days = 30"); break; default: Console.WriteLine("Incorrect input"); break; } } } }