Оператор 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?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 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?
Дякуємо за ваш відгук!