{ double a;
printf ("a = "); scanf("%lf", &a);
if (a<0) printf ("a<0 \n");
else if (a==0) printf ("a == 0 \n");
else printf ("a > 0 \n");
}
Оператор багатоваріантного вибору реалізує точку множинного розгалуження алгоритму. Цей оператор має такий формат:
switch (S) { case C1: оператори; break;
case C2: оператори; break; .........................
[ default : оператори ]
};
S являє собою вираз, який може мати будь-який цілий тип (char, short, int, long, enum, bool). Константи С1, С2, повинні мати типи, які відповідають виразу S, називаються вони мітками варіанту. Якщо значення виразу S збігається з однією з міток варіанта, виконується перехід на мітку цього варіанту. Допоміжний оператор break завершує роботу оператора switch. Якщо значення виразу S не збігається з жодною міткою варіанта, виконується перехід на рядок default, якщо він присутній. Після цього робота оператора switch завершується.
Для того, щоб забезпечити виконання тільки одного з варіантів, передбачених у структурі switch, наприкінці кожного зі списків "оператори" необхідно записати оператор break. При відсутності цього оператора виконуються всі наступні варіанти, записані в тілі switch (за винятком варіанта default) до наступного оператора break.
Нижче наведено приклад використання оператора switch для обробки натискання клавіш 'y', 'n', Esc.
// Приклад 3
#include <syst.h>