Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Оператор Switch-Case | Базові Типи Та Операції
Основи 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

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

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

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

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

Запитати АІ

expand

Запитати АІ

ChatGPT

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

Awesome!

Completion rate improved to 2.7

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

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

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

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

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