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
- 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.
- Lietas vērtībai ir jābūt tāda paša veida datu tipam kā slēdža mainīgajam.
- Lietas vērtībai ir jābūt nemainīgai vai burtiskai. Mainīgie lielumi nav atļauti.
- Pārtraukuma priekšraksts tiek izmantots slēdža iekšpusē, lai pārtrauktu priekšrakstu secību.
- Pārtraukuma paziņojums nav obligāts. Ja tas tiek izlaists, izpilde tiks turpināta nākamajā gadījumā.
- 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:

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 kā 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 drukaJava
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ļ.