Case в Си: примеры и особенности
В языке программирования C существует оператор switch, который позволяет выбирать один из нескольких вариантов выполнения кода в зависимости от значения выражения. Оператор switch состоит из выражения, которое сравнивается со списком значений (case), и кода, который должен быть выполнен, если значение выражения совпадает с одним из значений в списке.
Синтаксис оператора switch выглядит следующим образом:
c
switch (выражение) {
case значение1:
// код, который будет выполнен, если выражение равно значению1
break;
case значение2:
// код, который будет выполнен, если выражение равно значению2
break;
...
case значениеN:
// код, который будет выполнен, если выражение равно значениюN
break;
default:
// код, который будет выполнен, если ни одно значение не соответствует выражению
break;
}
Для понимания работы оператора switch рассмотрим пример. Предположим, у нас есть программа, которая выводит название дня недели в зависимости от его номера. В этом случае мы можем использовать оператор switch следующим образом:
c
#include
int main() {
int day = 3;
switch (day) {
case 1:
printf("Понедельник\n");
break;
case 2:
printf("Вторник\n");
break;
case 3:
printf("Среда\n");
break;
case 4:
printf("Четверг\n");
break;
case 5:
printf("Пятница\n");
break;
case 6:
printf("Суббота\n");
break;
case 7:
printf("Воскресенье\n");
break;
default:
printf("Неверный номер дня\n");
break;
}
return 0;
}
В этом примере переменная day содержит значение 3, поэтому код, связанный с case 3, будет выполнен, и на экран будет выведено "Среда". Если бы значение переменной day было, например, равно 8, то код, связанный с default, был бы выполнен, и на экран было бы выведено "Неверный номер дня".
Также оператор switch можно использовать с символьными выражениями. Вот пример:
c
#include
int main() {
char grade = 'B';
switch (grade) {
case 'A':
printf("Отлично\n");
break;
case 'B':
printf("Хорошо\n");
break;
case 'C':
printf("Удовлетворительно\n");
break;
default:
printf("Неудовлетворительно\n");
break;
}
return 0;
}
В данном случае переменная grade содержит символ 'B', поэтому будет выполнен код, связанный с case 'B', и на экран будет выведено "Хорошо".