Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Switch-case оператор | Основні Типи та Операції
Основи Java
course content

Зміст курсу

Основи Java

Основи Java

1. Початок Роботи
2. Основні Типи та Операції
3. Цикли
4. Масиви
5. String

bookSwitch-case оператор

Обробка декількох різних умов

Коли нам потрібно перевірити багато умов, використання великого ланцюжка if-else може бути незручним.

Наприклад:

java

Main

copy
12345678910111213141516171819
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 складається з декількох частин:

java

Main

copy
12345678
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:

java

Main

copy
123456789101112131415161718192021222324
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;:

java

Main

copy
1234567891011121314151617181920
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 і продовжить своє виконання.

1. Що буде виведено на консоль?
2. Навіщо нам потрібне ключове слово "`break;`"?
Що буде виведено на консоль?

Що буде виведено на консоль?

Виберіть правильну відповідь

Навіщо нам потрібне ключове слово "`break;`"?

Навіщо нам потрібне ключове слово "break;"?

Виберіть правильну відповідь

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 6
some-alt