Зміст курсу
Основи 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 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 Statement
Оператор switch-case
складається з декількох частин:
Main
switch(expresion) { case value_1: //code to be executed break; //optional case value_2: //code to be executed break; //optional ............. default: //code to be executed if all cases are not matched }
У коді вище ти можеш побачити, що ми використовуємо блоки case
для вибіркового виконання операцій. Ми покладаємося на expression, який дещо відрізняється від condition. Тут ми вставляємо значення або вираз. Наприклад, 10 / 2
. У цьому випадку буде виконано блок case
з сигнатурою case 5
, тому що вираз вище дорівнює 5.
Ми також можемо використовувати умову. У цьому випадку нам потрібно записати булевий вираз у блоці виразів, і він повинен виглядати приблизно так: 10 / 2 == 5
. Потім треба написати два випадки:
Але ця структура буде майже не відрізнятися від звичайного if-else
.
Ключове слово "break;"
Ми використовуємо це ключове слово, щоб завершити виконання оператора перемикача
і вийти з його тіла. Це слово часто використовується в циклах, про які ми поговоримо в наступних розділах. Використовуйте це ключове слово, коли вам потрібно вийти з блоку коду і зупинити його виконання.
Тепер давайте покращимо код, який ми написали вище, використовуючи конструцію switch-case
:
Main
package com.example; public class Main { public static void main(String[] args) { //you can change the value of 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
.
Розглянемо блок-схему switch-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 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 і продовжить своє виконання.
Дякуємо за ваш відгук!