Зміст курсу
Основи C
Основи C
Switch, Break
Використання оператора switch
Уявіть, що ви купуєте газовану воду з торгового автомата. Після того, як ви вибрали бажаний напій, глибоко всередині комп'ютера торгового автомата змінна user_input
приймає одне з декількох попередньо визначених значень. Кожен з цих варіантів називається case
, і тут вступає в гру оператор switch
.
Подумайте про оператор switch
як про іншу версію оператора if-else
. Він діє у відповідь на конкретні значення, які ви раніше визначили.
Ось як виглядає структура оператора switch
:
Розглянемо приклад з торговим автоматом. Припустимо, є три кнопки для вибору різних видів чіпсів:
- Чіпси зі смаком сиру;
- Чіпси зі смаком бекону;
- Чіпси зі смаком чилі.
Main
#include <stdio.h> int main() { int userInput = 2; switch (userInput) { case 1: printf("You selected cheese-flavored chips.\n"); break; case 2: printf("You selected bacon-flavored chips.\n"); break; case 3: printf("You selected chili-flavored chips.\n"); break; default: printf("You selected another item.\n"); } return 0; }
Якщо тестований вираз не відповідає жодному з перерахованих випадків, виконується випадок default
. Якщо випадок default
не передбачено, програма просто продовжує свій хід.
Примітка
Тестований вираз у операторі
switch
може бути лише цілого абоchar
типу. Ви не можете використовувати змінні, рядки або нецілі типи даних як випадки.
Main
#include <stdio.h> int main() { char userInput = 'y'; switch (userInput) { case 'a': printf("You entered 'a' character\n"); break; case 'b': printf("You entered 'b' character\n"); break; case 'c': printf("You entered 'c' character\n"); break; default: printf("You entered unknown character\n"); } return 0; }
Роль команди break
Команда break
зупиняє виконання поточного блоку і переходить до наступного сегмента коду. По суті, як тільки відповідний випадок завершено, ви виходите з цього блоку і продовжуєте виконання програми.
Без команди break
оператор switch
працював би безперервно, і ви, ймовірно, отримали б небажані результати.
Main
#include <stdio.h> int main() { char userInput = 'b'; switch (userInput) { case 'a': printf("You entered 'a' character\n"); // without break case 'b': printf("You entered 'b' character\n"); // without break case 'c': printf("You entered 'c' character\n"); // without break default: printf("You entered unknown character\n"); } return 0; }
За відсутності команди break
, програма починає виконання відразу після знаходження відповідного випадку і продовжує, поки не знайде break або не досягне кінця switch.
Дякуємо за ваш відгук!