Оператор Switch-Case
Обробка декількох різних умов
Коли потрібно перевірити багато умов, використання численних ланцюжків if-else може бути незручним.
Наприклад:
Main.java
12345678910111213141516171819package 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
123456789switch (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
123456789101112131415161718192021222324package 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
1234567891011121314151617181920package 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?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Can you explain the difference between the classic and new switch syntax in Java?
What happens if I forget to use the break statement in a switch-case?
Can you give more examples of when to use switch-case instead of if-else?
Чудово!
Completion показник покращився до 2.7
Оператор Switch-Case
Свайпніть щоб показати меню
Обробка декількох різних умов
Коли потрібно перевірити багато умов, використання численних ланцюжків if-else може бути незручним.
Наприклад:
Main.java
12345678910111213141516171819package 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
123456789switch (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
123456789101112131415161718192021222324package 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
1234567891011121314151617181920package 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?
Дякуємо за ваш відгук!