The оператор switch в Java є оператором багатостороннього розгалуження. Простими словами, оператор Java switch виконує один оператор із кількох умов.
Це як якщо-інакше-якщо сходова заява. Він забезпечує простий спосіб відправити виконання в різні частини коду на основі значення виразу. Вираз може бути a байт , короткий , char , або внутр примітивний тип даних. Він перевіряє рівність змінних відносно кількох значень.
Примітка: Вираз перемикання Java має складатися з байтів, коротких, цілих, довгих (з типом Wrapper), переліків і рядків. Починаючи з JDK7, він також працює з перерахованими типами ( Enums в java), the Рядок клас, і Обгортка класи.
Синтаксис
switch(expression) { case value1 : // Statements break; // break is optional case value2 : // Statements break; // break is optional .... .... .... default : // default Statement }>приклад:
Приклад розміру принтера
Java public class SizePrinter { public static void main(String[] args) { int sizeNumber = 2; // Replace with your desired size (1, 2, 3, 4, or 5) switch (sizeNumber) { case 1: System.out.println('Extra Small'); break; case 2: System.out.println('Small'); break; case 3: System.out.println('Medium'); break; case 4: System.out.println('Large'); break; case 5: System.out.println('Extra Large'); break; default: System.out.println('Invalid size number'); } } }> Вихід:
Small>
Деякі важливі правила для Java Switch операторів
- Може бути будь-яка кількість випадків, лише накладаючи перевірку умов, але пам’ятайте, що повторювані значення випадків не допускаються.
- Значення регістру має мати той самий тип даних, що й змінна в перемикачі.
- Значення випадку має бути постійним або буквальним. Змінні не допускаються.
- Оператор break використовується всередині перемикача для завершення послідовності операторів.
- Інструкція break необов'язкова. Якщо пропущено, виконання продовжиться в наступному випадку.
- Оператор за замовчуванням є необов’язковим і може з’явитися будь-де всередині блоку switch. У випадку, якщо він не в кінці, оператор break потрібно зберегти після оператора за замовчуванням, щоб пропустити виконання наступного оператора case.
Note: Until Java-6, switch case argument cannot be of String type but Java 7 onward we can use String type argument in Switch Case.>
Блок-схема оператора Switch-Case
Ця блок-схема показує потік керування та роботу операторів switch:

Примітка: Інструкція перемикання Java є прохідною інструкцією, що означає, що вона виконує всі оператори if ключове слово break не використовується, тому дуже важливо використовувати ключове слово break у кожному випадку.
приклад: День знахідки
Розглянемо наступну програму на Java, вона оголошує int з іменем day, значення якого представляє день (1-7). Код відображає назву дня на основі значення дня за допомогою оператора switch.
Java // Java program to Demonstrate Switch Case // with Primitive(int) Data Type // Class public class GFG { // Main driver method public static void main(String[] args) { int day = 5; String dayString; // Switch statement with int data type switch (day) { // Case case 1: dayString = 'Monday'; break; // Case case 2: dayString = 'Tuesday'; break; // Case case 3: dayString = 'Wednesday'; break; // Case case 4: dayString = 'Thursday'; break; // Case case 5: dayString = 'Friday'; break; // Case case 6: dayString = 'Saturday'; break; // Case case 7: dayString = 'Sunday'; break; // Default case default: dayString = 'Invalid day'; } System.out.println(dayString); } }> Вихід
Friday>
break in switch case Заяви
А оператор розриву є необов'язковим. Якщо ми опустимо перерву, виконання продовжиться в наступному випадку.
Іноді бажано мати кілька випадків без перерва заяви між ними. Для прикладу розглянемо оновлену версію вищевказаної програми, вона також відображає, чи є день буднім або вихідним.
приклад:
Програма перемикання операторів без кількох перерв
Java // Java Program to Demonstrate Switch Case // with Multiple Cases Without Break Statements // Class public class GFG { // main driver method public static void main(String[] args) { int day = 2; String dayType; String dayString; // Switch case switch (day) { // Case case 1: dayString = 'Monday'; break; // Case case 2: dayString = 'Tuesday'; break; // Case case 3: dayString = 'Wednesday'; break; case 4: dayString = 'Thursday'; break; case 5: dayString = 'Friday'; break; case 6: dayString = 'Saturday'; break; case 7: dayString = 'Sunday'; break; default: dayString = 'Invalid day'; } switch (day) { // Multiple cases without break statements case 1: case 2: case 3: case 4: case 5: dayType = 'Weekday'; break; case 6: case 7: dayType = 'Weekend'; break; default: dayType = 'Invalid daytype'; } System.out.println(dayString + ' is a ' + dayType); } }> Вихід
Tuesday is a Weekday>
Вкладені оператори перемикання Java
Ми можемо використовувати a перемикач як частина послідовності операторів ан зовнішній перемикач. Це називається a вкладений перемикач . Оскільки оператор switch визначає свій блок, не виникає конфліктів між константами регістру у внутрішньому перемикачі та константами у зовнішньому перемикачі.
приклад:
Вкладений оператор Switch
Java // Java Program to Demonstrate // Nested Switch Case Statement // Class public class GFG { // Main driver method public static void main(String[] args) { // Custom input string String Branch = 'CSE'; int year = 2; // Switch case switch (year) { // Case case 1: System.out.println( 'elective courses : Advance english, Algebra'); // Break statement to hault execution here // itself if case is matched break; // Case case 2: // Switch inside a switch // Nested Switch switch (Branch) { // Nested case case 'CSE': case 'CCE': System.out.println( 'elective courses : Machine Learning, Big Data'); break; // Case case 'ECE': System.out.println( 'elective courses : Antenna Engineering'); break; // default case // It will execute if above cases does not // execute default: // Print statement System.out.println( 'Elective courses : Optimization'); } } } }> Вихід
elective courses : Machine Learning, Big Data>
Java Enum у операторі Switch
Перерахування (enum) є потужним і зрозумілим способом являють собою фіксований набір іменованих констант на Java.
Переліки використовуються в операторах Switch через їхню безпеку типу та читабельність.
приклад:
Використання Enum у Switch
Java // Java Program to Illustrate Use of Enum // in Switch Statement // Class public class GFG { // Enum public enum Day { Sun, Mon, Tue, Wed, Thu, Fri, Sat } // Main driver method public static void main(String args[]) { // Enum Day[] DayNow = Day.values(); // Iterating using for each loop for (Day Now : DayNow) { // Switch case switch (Now) { // Case 1 case Sun: System.out.println('Sunday'); // break statement that hault further // execution once case is satisfied break; // Case 2 case Mon: System.out.println('Monday'); break; // Case 3 case Tue: System.out.println('Tuesday'); break; // Case 4 case Wed: System.out.println('Wednesday'); break; // Case 5 case Thu: System.out.println('Thursday'); break; // Case 6 case Fri: System.out.println('Friday'); break; // Case 7 case Sat: System.out.println('Saturday'); } } } }> Вихід
Sunday Monday Tuesday Wednesday Thursday Friday Saturday>
оператор за замовчуванням у Java Switch Case
Регістр за замовчуванням у регістрі Switch визначає, який код виконувати, якщо регістр не відповідає.
Бажано писати регістр за замовчуванням у кінці всіх можливих регістрів, але його можна записати в будь-якому місці операторів switch.
xor в java
приклад:
Написання за замовчуванням у середині операторів switch:
Java /*package whatever //do not write package name here */ import java.io.*; class GFG { public static void main (String[] args) { int i=2; switch(i){ default: System.out.println('Default'); case 1: System.out.println(1); break; case 2: System.out.println(2); case 3: System.out.println(3); } } }> Вихід
2 3>
приклад:
Запис за замовчуванням на початку операторів switch
Java import java.io.*; class GFG { public static void main(String[] args) { int i = 5; switch (i) { default: System.out.println('Default'); case 1: System.out.println(1); break; case 2: System.out.println(2); case 3: System.out.println(3); } } }> Вихід
Default 1>
Варіанти етикетки корпусу
Аргументи case label і switch можуть бути постійними виразами. Аргумент switch може бути виразом змінної.
приклад:
Використання аргументу перемикача змінної.
Java import java.io.*; class GFG { public static void main(String[] args) { int x = 2; switch (x + 1) { case 1: System.out.println(1); break; case 1 + 1: System.out.println(2); break; case 2 + 1: System.out.println(3); break; default: System.out.println('Default'); } } }> Вихід
3>
Мітка регістру не може бути змінною чи виразом змінної. Це має бути постійний вираз.
Java import java.io.*; class GFG { public static void main(String[] args) { int x = 2; int y = 1; switch (x) { case 1: System.out.println(1); break; case 2: System.out.println(2); break; case x + y: System.out.println(3); break; default: System.out.println('Default'); } } }> ./GFG.java:16: error: constant expression required case x+y: ^ 1 error>
Java Wrapper в операторах Switch
Java надає чотири класи-обгортки використовувати: Integer, Short, Byte і Long в операторах switch.
приклад:
Java Wrapper у регістрі перемикачів.
Java public class WrapperSwitchExample { public static void main(String[] args) { Integer age = 25; switch (age.intValue()) { // Extract primitive value for switch case 25: System.out.println('You are 25.'); break; case 30: System.out.println('You are 30.'); break; default: System.out.println('Age not matched.'); } } }> Вихід:
You are 25.>
Примітка:
Незалежно від його розташування, випадок за замовчуванням виконується, лише якщо не виконується жодна з інших умов. Отже, розміщення його на початку, в середині або в кінці не змінює основну логіку (якщо тільки ви не використовуєте менш поширену техніку, яка називається пропусканням).
Приклад: у цьому коді ми визначимо день тижня за допомогою (1-7) чисел.
Java import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print('Enter a day number (1-7): '); int day = scanner.nextInt(); switch (day) { default: System.out.println('Not a valid weekday.'); break; case 1: System.out.println('It's Monday!'); break; case 2: System.out.println('It's Tuesday!'); break; case 3: System.out.println('It's Wednesday!'); break; case 4: System.out.println('It's Thursday!'); break; case 5: System.out.println('It's Friday!'); break; case 6: System.out.println('It's Saturday!'); break; case 7: System.out.println('It's Sunday!'); break; } } }> Вихід
Enter a day number (1-7): 8 Not a valid weekday.>
Детальніше:
- Використання Enum і Switch Keyword в Java
- Рядок у регістрі Switch у Java
- Підручник з Java
вправи
Щоб відпрацювати оператори перемикання Java, ви можете відвідати сторінку: Java Switch Case оператор Практика
Висновок
Інструкції перемикання в Java — це структури потоку керування, які дозволяють вам виконувати певний блок коду на основі значення одного виразу. Їх можна розглядати як альтернативу операторам if-else-if у програмуванні.
mit повна форма
Інструкції Java Switch - поширені запитання
Як використовувати оператори switch в Java
Щоб використовувати оператор switch у Java, ви можете використовувати такий синтаксис:
перемикач (вираз) {
case value1:
// код для виконання, якщо вираз дорівнює значенню1
перерва;
case value2:
// код для виконання, якщо вираз дорівнює значенню2
перерва;
// … більше випадків
за замовчуванням:
// код для виконання, якщо жоден із наведених вище випадків не відповідає
}
Чи можемо ми передати null комутатору
Ні, ви не можете передати NULL оператору switch, оскільки вони потребують постійного виразу в його регістрі.
Чи можете ви повернутися до оператора switch
Ні, оператори switch створюють потік керування в програмі, тому вона не може повернутися після виходу з випадку switch.