Оператор Switch-Case
Свайпніть щоб показати меню
Обробка декількох різних умов
Коли потрібно перевірити багато умов, використання численних ланцюжків if-else може бути незручним.
Наприклад:
Main.java
12345678910111213141516171819package com.example; public class Main { public static void main(String[] args) { // You can change the value of the variable `a` to test the `if` statement int a = 30; if (a == 10) { System.out.println(10); } else if (a == 20) { System.out.println(20); } else if (a == 30) { System.out.println(30); } else if (a == 40) { System.out.println(40); } else { System.out.println(a); } } }
Можна помітити, що такий підхід виглядає неохайно та непрофесійно. Для подібних випадків у Java передбачено оператор switch-case.
Оператор switch-case
Оператор switch-case складається з кількох частин:
Main.java
123456789switch (expression) { case value_1: // Code to be executed if expression matches `value_1` break; // Break is used to exit the `switch` statement. case value_2: // Code to be executed if expression matches `value_2` break; // Break is used to exit the `switch` statement. ............ default: // Code to be executed if no cases match // Optional, but executed if no other case matches }
У наведеному вище коді видно, що для вибіркового виконання операцій використовуються блоки switch. Тут використовується вираз, який дещо відрізняється від умови. У цьому місці вставляється значення або вираз. Наприклад, 10 / 2. У цьому випадку буде виконано блок case з підписом case 5, оскільки наведений вираз дорівнює 5.
Також можна використати умову. Для цього потрібно записати булевий вираз у блоці виразу, і це виглядатиме так: 10 / 2 == 5. Далі нижче записати два випадки:
case true:
case false:
Але така структура майже не відрізнятиметься від звичайного if-else.
Ключове слово "break"
Це ключове слово використовується для завершення виконання оператора switch-case та виходу з його тіла. Це слово часто застосовується у циклах, які будуть розглянуті у наступних розділах. Використовуйте це ключове слово, коли потрібно вийти з блоку коду та зупинити його виконання.
Тепер покращимо код, який ми написали вище, використовуючи оператор switch-case:
Main.java
123456789101112131415161718192021222324package com.example; public class Main { public static void main(String[] args) { // You can change the value of the variable `a` to test the `switch` statement int a = 30; switch (a) { case 10: System.out.println(10); break; case 20: System.out.println(20); break; case 30: System.out.println(30); break; case 40: System.out.println(40); break; default: System.out.println("There is no matching value"); } } }
Можна побачити, що код став значно чистішим, легшим для читання та розширення. Не потрібно писати ще одну інструкцію if з нуля, якщо потрібно додати додаткові умови. Замість цього можна додати ще один блок case до нашого switch-case statement оператора.
Розглянемо схему блоку switch-case:
Як бачимо, кількість case може бути будь-якою. Для кожного case необхідно вказати власну умову та код, який буде виконано, коли програма потрапить у відповідний блок case.
Рекомендується використовувати ключове слово break, оскільки програма не вийде з блоку switch, доки не будуть виконані всі case-блоки. Блок default буде виконано, якщо не було виконано жодного з case-блоків або не було використано ключове слово break.
Розглянемо ще один приклад без ключових слів break:
Main.java
1234567891011121314151617181920package com.example; public class Main { public static void main(String[] args) { // You can change the value of the variable `a` to test the `switch` statement int a = 10; switch (a) { case 10: System.out.println(10); case 20: System.out.println(20); case 30: System.out.println(30); case 40: System.out.println(40); default: System.out.println("There is no matching value"); } } }
Ми отримали кілька значень, які відрізняються від очікуваних. Додатково, ми отримали інформацію з блоків case 10 та default. Саме тому після кожного блоку використовується ключове слово break. Таким чином, програма вийде з оператора switch і продовжить виконання.
1. Що буде виведено в консоль?
2. Навіщо потрібне ключове слово break?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат