Switch, Break
Використання оператора switch
Уявіть, що ви купуєте газований напій з торгового автомата. Після вибору бажаного напою, всередині комп'ютера автомата змінна user_input приймає одне з кількох наперед визначених значень. Кожен з цих варіантів називається case, і саме тут використовується оператор switch.
Розглядайте оператор switch як іншу версію оператора if-else. Він реагує на конкретні значення, які ви визначили заздалегідь.
Ось як виглядає структура оператора switch:
main.c
1234567891011121314151617switch (integer_expression) { case first_case_value: // Instruction for this case break; case second_case_value: // Instruction for this case break; case third_case_value: // Instruction for this case break; default: // Default instruction }
Розгляньте приклад торгового автомата. Припустимо, є три кнопки для вибору різних видів чипсів:
- Чипси зі смаком сиру;
- Чипси зі смаком бекону;
- Чипси зі смаком чилі.
Main.c
123456789101112131415161718192021222324#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. Не можна використовувати рядки або нецілочисельні типи даних у якості значень для case.
Main.c
12345678910111213141516171819202122232425#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 зупиняє виконання поточного блоку та переходить до наступної частини коду. Тобто, після завершення відповідного case, ви виходите з цього блоку та продовжуєте виконання програми.
Без команди break оператор switch буде виконуватися далі, що може призвести до небажаних результатів.
Main.c
123456789101112131415161718192021222324#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 програма починає виконання одразу після знаходження відповідного case і продовжує виконання до знаходження break або до завершення блоку switch.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Can you show me an example of a switch statement in code?
What happens if I forget to include a break statement in one of the cases?
Can you explain how the default case works in more detail?
Awesome!
Completion rate improved to 2.63
Switch, Break
Свайпніть щоб показати меню
Використання оператора switch
Уявіть, що ви купуєте газований напій з торгового автомата. Після вибору бажаного напою, всередині комп'ютера автомата змінна user_input приймає одне з кількох наперед визначених значень. Кожен з цих варіантів називається case, і саме тут використовується оператор switch.
Розглядайте оператор switch як іншу версію оператора if-else. Він реагує на конкретні значення, які ви визначили заздалегідь.
Ось як виглядає структура оператора switch:
main.c
1234567891011121314151617switch (integer_expression) { case first_case_value: // Instruction for this case break; case second_case_value: // Instruction for this case break; case third_case_value: // Instruction for this case break; default: // Default instruction }
Розгляньте приклад торгового автомата. Припустимо, є три кнопки для вибору різних видів чипсів:
- Чипси зі смаком сиру;
- Чипси зі смаком бекону;
- Чипси зі смаком чилі.
Main.c
123456789101112131415161718192021222324#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. Не можна використовувати рядки або нецілочисельні типи даних у якості значень для case.
Main.c
12345678910111213141516171819202122232425#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 зупиняє виконання поточного блоку та переходить до наступної частини коду. Тобто, після завершення відповідного case, ви виходите з цього блоку та продовжуєте виконання програми.
Без команди break оператор switch буде виконуватися далі, що може призвести до небажаних результатів.
Main.c
123456789101112131415161718192021222324#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 програма починає виконання одразу після знаходження відповідного case і продовжує виконання до знаходження break або до завершення блоку switch.
Дякуємо за ваш відгук!