Оператор switch дозволяє вибрати одну з декількох альтернатив. Він записується в наступному вигляді:
switch (вираз)
{Case константа1: варіант 1; break;
. . .
case константа n: варіант n; break;
default: варіант n +1; break;}
Тіло оператора smitch складається з декількох операторів, помічених ключовим словом case з наступним константним-виразом. Слід зазначити, що використання цілого константного вираження є істотним недоліком, властивим розглянутому оператору.
Так як константні вираз обчислюється під час трансляції, воно не може міститизмінні або виклики функцій. Звичайно як константного вирази використовуються цілі або символьні константи.
У операторі switch обчислюється цілий вираз в дужках (його називають селектором), і його значення порівнюється з усіма константами.При збігу виконується відповідний варіант (одна або кілька інструкцій). Всі константи в записі оператора повинні бути різними. Варіант з ключовим словом default (інші) реалізується, якщо жоден інший не підійшов (якщо слово default відсутня, а всі результати порівняння негативні, то жоден варіант не виконується). Для припинення подальших перевірок після успішного вибору деякого варіанту використовується оператор break, що забезпечує негайний вихід з оператора switch.
Наприклад:
# Include <stdio.h>
main ()
{
char y;
scanf ("% c", & y);
switch (y)
{
case '1 ':
printf ("Гілка 1 \ n");
break;
case '2 ':
case '3 ':
printf ("Гілка 2 або 3 \ n");
break;
default:
printf ("Гілки 1,2,3 не працюють \ n");
}
}
Оператор scanf вводить змінну y. Її значення в операторі switch порівнюється з усіма константами операторів case. Якщо ввести символ"1", то на екрані з'явиться рядок:
Гілка 1
по оператору break відбудеться вихід з перемикача switch, і програма завершить свою роботу. Якщо ввести символи '2 'або '3', то на екран буде виведено рядок:
Гілка 2 або 3
При введенні будь-якого іншого символу управління перейде до ключового слова default і на екрані з'явиться рядок:
Гілки 1,2,3 не працюють.