Зміст курсу
Основи Java
Основи Java
Оператор Switch-Case
Обробка кількох різних умов
Коли потрібно перевірити багато умов, використання численних ланцюжків if-else
може бути незручним.
Наприклад:
Main
package 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
switch (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:
java
Але така структура майже не відрізнятиметься від звичайного if-else
.
Ключове слово "break"
Це ключове слово використовується для завершення виконання оператора switch-case
та виходу з його тіла. Це слово часто застосовується у циклах, які ми розглянемо у наступних розділах. Використовуйте це ключове слово, коли потрібно вийти з блоку коду та зупинити його виконання.
Тепер покращимо код, який ми написали вище, використовуючи оператор switch-case
:
Main
package 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
package 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
?
Дякуємо за ваш відгук!