Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Оператор Switch-Case | Секція
Practice
Projects
Quizzes & Challenges
Вікторини
Challenges
/
Основи Java

bookОператор Switch-Case

Свайпніть щоб показати меню

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

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

Наприклад:

Main.java

Main.java

copy
12345678910111213141516171819
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.java

Main.java

copy
123456789
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 нижче:

case true:
  
case false:

Але така структура майже не відрізняється від звичайного if-else.

Ключове слово "break"

Це ключове слово використовується для завершення виконання оператора switch-case та виходу з його тіла. Це слово часто застосовується у циклах, які будуть розглянуті у наступних розділах. Використовуйте це ключове слово, коли потрібно вийти з блоку коду та зупинити його виконання.

Тепер покращимо код, який ми написали вище, використовуючи оператор switch-case:

Main.java

Main.java

copy
123456789101112131415161718192021222324
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.java

Main.java

copy
1234567891011121314151617181920
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?

question mark

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

Select the correct answer

question mark

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

Select the correct answer

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

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

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

Секція 1. Розділ 12

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 1. Розділ 12
some-alt