logo

Pārslēgt paziņojumus Java

The pārslēgšanās priekšraksts Java ir daudzvirzienu filiāles paziņojums. Vienkāršiem vārdiem sakot, Java slēdža priekšraksts izpilda vienu paziņojumu no vairākiem nosacījumiem.

Tas ir kā an ja-citādi-ja kāpņu paziņojums. Tas nodrošina vienkāršu veidu, kā nosūtīt izpildi uz dažādām koda daļām, pamatojoties uz izteiksmes vērtību. Izteiciens var būt a baits , īss , char , vai starpt primitīvs datu tips. Tas pārbauda mainīgo lielumu vienādību ar vairākām vērtībām.



Piezīme: Java slēdža izteiksmei jābūt baitam, īsam, int, garam (ar tā veidu Wrapper), enums un virkne. Sākot ar JDK7, tas darbojas arī ar uzskaitītajiem tipiem ( Enums Java), Stīga klase, un Iesaiņotājs klases.

Sintakse

switch(expression) {  case value1 :  // Statements  break; // break is optional    case value2 :  // Statements  break; // break is optional  ....  ....  ....  default :   // default Statement }>

Piemērs:

Izmēru printera piemērs

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');  }  } }>

Izvade:



Small>

Daži svarīgi Java Switch paziņojumu noteikumi

  1. Var būt neierobežots skaits gadījumu, kas tikai nosaka nosacījumu pārbaudi, taču atcerieties, ka gadījuma/-u vērtību dublikāti nav atļauti.
  2. Lietas vērtībai ir jābūt tāda paša veida datu tipam kā slēdža mainīgajam.
  3. Lietas vērtībai ir jābūt nemainīgai vai burtiskai. Mainīgie lielumi nav atļauti.
  4. Pārtraukuma priekšraksts tiek izmantots slēdža iekšpusē, lai pārtrauktu priekšrakstu secību.
  5. Pārtraukuma paziņojums nav obligāts. Ja tas tiek izlaists, izpilde tiks turpināta nākamajā gadījumā.
  6. Noklusējuma paziņojums nav obligāts un var parādīties jebkurā vietā slēdža blokā. Gadījumā, ja tā nav beigās, tad pārtraukuma priekšraksts ir jāsaglabā aiz noklusējuma priekšraksta, lai izlaistu nākamā gadījuma priekšraksta izpildi.
  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 paziņojuma blokshēma

Šī blokshēma parāda vadības plūsmu un slēdža paziņojumu darbību:

switch-statement-flowchart-in-java

Piezīme: Java slēdža priekšraksts ir izkrituma paziņojums, kas nozīmē, ka tas izpilda visus paziņojumus, ja pārtraukuma atslēgvārds netiek izmantots, tāpēc katrā gadījumā ir ļoti svarīgi izmantot break atslēgvārdu.



Piemērs: Meklēšanas diena

Apsveriet šādu Java programmu, tā deklarē int nosauktu dienu, kuras vērtība ir diena (1-7). Kods parāda dienas nosaukumu, pamatojoties uz dienas vērtību, izmantojot pārslēgšanas paziņojumu.

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);  } }>

Izvade
Friday>

pārtraukums slēdža korpusā Paziņojumi

A pārtraukuma paziņojums nav obligāta. Ja mēs izlaidīsim pārtraukumu, izpilde tiks turpināta nākamajā gadījumā.

Linux arhitektūra

Dažreiz ir vēlams, lai būtu vairākas lietas bez pārtraukums paziņojumi starp viņiem. Piemēram, aplūkosim iepriekš minētās programmas atjaunināto versiju, tā arī parāda, vai diena ir darba diena vai nedēļas nogale.

Piemērs:

Pārslēgt paziņojumu programmu bez vairākiem pārtraukumiem

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);  } }>

Izvade
Tuesday is a Weekday>

Java Nested Switch paziņojumi

Mēs varam izmantot a slēdzis paziņojumu secības daļa no an ārējais slēdzis. To sauc par a ligzdots slēdzis . Tā kā slēdža priekšraksts definē tā bloku, nerodas konflikti starp reģistra konstantēm iekšējā slēdžā un ārējā slēdža konstantēm.

Piemērs:

Nested Switch paziņojums

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');  }  }  } }>

Izvade
elective courses : Machine Learning, Big Data>

Java Enum Switch paziņojumā

Uzskaitījumi (enums) ir spēcīgs un skaidrs veids, kā apzīmē fiksētu nosaukto konstantu kopu Java valodā.

Enums tiek izmantots Switch paziņojumos to veida drošības un lasāmības dēļ.

Piemērs:

Enum izmantošana 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');  }  }  } }>

Izvade
Sunday Monday Tuesday Wednesday Thursday Friday Saturday>

noklusējuma paziņojums Java Switch Case

noklusējuma reģistrs Switch case norāda, kāds kods jāpalaiž, ja neviens reģistrs neatbilst.

Noklusēto gadījumu ieteicams rakstīt visu iespējamo gadījumu beigās, taču to var rakstīt jebkurā vietā slēdža priekšrakstos.

Piemērs:

Noklusējuma rakstīšana slēdža paziņojumu vidū:

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);    }  } }>

Izvade
2 3>

Piemērs:

Noklusējuma rakstīšana slēdža priekšrakstu sākumā

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);  }  } }>

Izvade
Default 1>

Korpusa etiķešu variācijas

Case etiķetes un slēdža argumenti var būt nemainīga izteiksme. Slēdža arguments var būt mainīga izteiksme.

Piemērs:

Izmantojot mainīgo slēdža argumentu.

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');  }  } }>

Izvade
3>

Gadījuma etiķete nevar būt mainīgs vai mainīgs izteiksme. Tai jābūt pastāvīgai izpausmei.

java druka
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 iesaiņotājs Switch paziņojumos

Java nodrošina četrus iesaiņojuma nodarbības ko izmantot: vesels skaitlis, īss, baits un garš slēdža priekšrakstos.

Piemērs:

Java iesaiņojums slēdža korpusā.

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.');  }  } }>

Izvade:

cast virkni int java
You are 25.>

Piezīme:

Neatkarīgi no tā izvietojuma noklusējuma gadījums tiek izpildīts tikai tad, ja nav izpildīts neviens no pārējiem gadījuma nosacījumiem. Tātad, ievietojot to sākumā, vidū vai beigās, galvenā loģika nemainās (ja vien neizmantojat mazāk izplatītu paņēmienu, ko sauc par izkrišanu).

Piemērs: šajā kodā mēs identificēsim nedēļas dienu ar cipariem (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;  }  } }>

Izvade

Enter a day number (1-7): 8 Not a valid weekday.>


Lasīt vairāk:

  • Enum un Switch Keyword izmantošana Java
  • Virkne Java valodā Switch Case
  • Java apmācība

Vingrinājums

Lai praktizētu Java slēdža paziņojumus, varat apmeklēt lapu: Java Switch lietas izklāsta prakse

Secinājums

Slēdža priekšraksti Java ir vadības plūsmas struktūras, kas ļauj izpildīt noteiktu koda bloku, pamatojoties uz vienas izteiksmes vērtību. Programmēšanā tos var uzskatīt par alternatīvu if-else-if paziņojumiem.

Java Switch paziņojumi — FAQ

Kā lietot slēdža paziņojumus Java

Lai izmantotu slēdža priekšrakstu Java, varat izmantot šādu sintaksi:

slēdzis (izteiksme) {
gadījuma vērtība1:
// kods, kas jāizpilda, ja izteiksme ir vienāda ar vērtību1
pārtraukums;
gadījuma vērtība2:
// kods, kas jāizpilda, ja izteiksme ir vienāda ar vērtību2
pārtraukums;
// … vairāk gadījumu
noklusējuma:
// kods, kas jāizpilda, ja neviens no iepriekš minētajiem gadījumiem neatbilst
}

Vai mēs varam nodot nulli slēdzim

Nē, jūs nevarat nodot NULL slēdža priekšrakstam, jo ​​tā gadījumā ir nepieciešama pastāvīga izteiksme.

Vai varat atgriezties pie pārslēgšanas paziņojuma

Nē, slēdža priekšraksti veido vadības plūsmu programmā, tāpēc pēc slēdža gadījuma iziešanas tā nevar atgriezties atpakaļ.