logo

Інструкції Switch у Java

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 операторів

  1. Може бути будь-яка кількість випадків, лише накладаючи перевірку умов, але пам’ятайте, що повторювані значення випадків не допускаються.
  2. Значення регістру має мати той самий тип даних, що й змінна в перемикачі.
  3. Значення випадку має бути постійним або буквальним. Змінні не допускаються.
  4. Оператор break використовується всередині перемикача для завершення послідовності операторів.
  5. Інструкція break необов'язкова. Якщо пропущено, виконання продовжиться в наступному випадку.
  6. Оператор за замовчуванням є необов’язковим і може з’явитися будь-де всередині блоку 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:

switch-statement-flowchart-in-java

Примітка: Інструкція перемикання 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.