The „Switch“ sakinys „Java“. yra daugiakryptis šakinis teiginys. Paprastais žodžiais tariant, „Java“ jungiklio sakinys vykdo vieną sakinį iš kelių sąlygų.
Tai kaip an jei-kita-jei kopėčių pareiškimas. Tai yra paprastas būdas nukreipti vykdymą į skirtingas kodo dalis pagal išraiškos vertę. Išraiška gali būti a baitas , trumpas , char , arba tarpt primityvus duomenų tipas. Jis tikrina kintamųjų lygybę su keliomis reikšmėmis.
Pastaba: „Java“ jungiklio išraiška turi būti baitų, trumpų, int, ilgų (su „Wrapper“ tipu), enums ir eilutės. Pradedant nuo JDK7, jis taip pat veikia su išvardytais tipais ( Enums Java), Styga klasė ir Vyniojamasis popierius klases.
Sintaksė
switch(expression) { case value1 : // Statements break; // break is optional case value2 : // Statements break; // break is optional .... .... .... default : // default Statement }>Pavyzdys:
Dydžių spausdintuvo pavyzdys
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'); } } }> Išvestis:
Small>
Kai kurios svarbios „Java Switch“ pareiškimų taisyklės
- Gali būti bet koks skaičius atvejų, kai tik nustatoma sąlyga, tačiau atminkite, kad pasikartojančios atvejo (-ių) reikšmės neleidžiamos.
- Atvejo reikšmė turi būti tokio paties tipo kaip ir jungiklio kintamasis.
- Atvejo reikšmė turi būti pastovi arba pažodinė. Kintamieji neleidžiami.
- Pertraukos sakinys naudojamas jungiklio viduje, kad užbaigtų sakinių seką.
- Pertraukos teiginys yra neprivalomas. Jei praleista, vykdymas bus tęsiamas kitu atveju.
- Numatytasis teiginys yra neprivalomas ir gali būti rodomas bet kurioje jungiklio bloko vietoje. Tuo atveju, jei jo nėra pabaigoje, po numatytosios teiginio reikia palikti pertraukos sakinį, kad nebūtų vykdomas kitas atvejo sakinys.
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.>
Perjungimo atvejo pareiškimo schema
Šioje struktūrinėje diagramoje parodytas valdymo srautas ir jungiklio teiginių veikimas:

Pastaba: „Java switch“ teiginys yra kritimo sakinys, tai reiškia, kad jis vykdo visus sakinius, jei pertraukos raktinis žodis nenaudojamas, todėl labai svarbu kiekvienu atveju naudoti break raktinį žodį.
Pavyzdys: Radimo diena
Apsvarstykite šią „Java“ programą, kuri deklaruoja int pavadintą dieną, kurios reikšmė reiškia dieną (1–7). Kode rodomas dienos pavadinimas, pagrįstas dienos verte, naudojant perjungimo teiginį.
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); } }> Išvestis
Friday>
pertrauka jungiklio korpuse Teiginiai
A pertraukos pareiškimas yra neprivaloma. Jei praleisime pertrauką, vykdymas bus tęsiamas kitoje byloje.
Kartais pageidautina turėti kelis atvejus be pertrauka pareiškimai tarp jų. Pavyzdžiui, panagrinėkime atnaujintą aukščiau pateiktos programos versiją, kuri taip pat rodo, ar diena yra savaitės ar savaitgalio diena.
Pavyzdys:
Perjungti teiginių programą be kelių pertraukų
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); } }> Išvestis
Tuesday is a Weekday>
„Java Neted Switch“ pareiškimai
Galime naudoti a jungiklis kaip teiginių sekos dalis iš an išorinis jungiklis. Tai vadinama a įdėtas jungiklis . Kadangi jungiklio teiginys apibrėžia jo bloką, nekyla jokių konfliktų tarp vidiniame jungiklyje ir išoriniame jungiklyje esančių didžiųjų raidžių konstantų.
Pavyzdys:
Įdėto jungiklio pareiškimas
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'); } } } }> Išvestis
elective courses : Machine Learning, Big Data>
„Java Enum“ perjungimo pareiškime
Sąrašai (enums) yra galingas ir aiškus būdas reiškia fiksuotą įvardytų konstantų rinkinį Java kalboje.
Enumai naudojami Switch teiginiuose dėl jų tipo saugumo ir skaitomumo.
Pavyzdys:
„Enum“ naudojimas „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'); } } } }> Išvestis
Sunday Monday Tuesday Wednesday Thursday Friday Saturday>
numatytasis sakinys Java Switch Case
numatytasis didžiosios ir mažosios raidės dydis Switch case nurodo, kokį kodą paleisti, jei nesutampa nė viena raidė.
Pageidautina numatytąjį atvejį rašyti visų galimų atvejų pabaigoje, tačiau jį galima parašyti bet kurioje komutatoriaus sakinių vietoje.
Pavyzdys:
Numatytosios reikšmės rašymas perjungimo teiginių viduryje:
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); } } }> Išvestis
2 3>
Pavyzdys:
Numatytasis rašymas pradedant jungiklio teiginius
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); } } }> Išvestis
Default 1>
Korpuso etikečių variantai
Case label ir switch argumentai gali būti pastovi išraiška. Perjungimo argumentas gali būti kintamoji išraiška.
kaip rūšiuoti masyvą java
Pavyzdys:
Naudojant kintamo jungiklio argumentą.
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'); } } }> Išvestis
3>
Atvejo etiketė negali būti kintamoji arba kintamoji išraiška. Tai turi būti nuolatinė išraiška.
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“ pareiškimuose
„Java“ suteikia keturis vyniojimo klasės naudoti: Integer, Short, Byte ir Long jungiklio sakiniuose.
Pavyzdys:
Java Wrapper jungiklio dėkle.
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.'); } } }> Išvestis:
You are 25.>
Pastaba:
Neatsižvelgiant į jo vietą, numatytasis atvejis vykdomas tik tuo atveju, jei neįvykdoma jokia kita atvejo sąlyga. Taigi, įtraukus jį į pradžią, vidurį ar pabaigą, pagrindinė logika nekeičiama (nebent naudojate rečiau įprastą techniką, vadinamą kritimo perėjimu).
Pavyzdys: Šiame kode savaitės dieną identifikuosime per skaičius (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; } } }> Išvestis
Enter a day number (1-7): 8 Not a valid weekday.>
Skaityti daugiau:
- „Enum“ ir „Switch Keyword“ naudojimas „Java“.
- „Java“ eilutė „Switch Case“.
- Java pamoka
Pratimas
Norėdami praktikuoti Java komutatoriaus teiginius, galite apsilankyti puslapyje: „Java Switch“ atvejo pareiškimo praktika
Išvada
„Java“ perjungimo teiginiai yra valdymo srauto struktūros, leidžiančios vykdyti tam tikrą kodo bloką pagal vienos išraiškos reikšmę. Jie gali būti laikomi alternatyva if-else-if teiginiams programuojant.
„Java Switch“ pareiškimai – DUK
Kaip naudoti „Switch“ teiginius „Java“.
Norėdami naudoti perjungimo sakinį Java, galite naudoti šią sintaksę:
jungiklis (išraiška) {
1 atvejo reikšmė:
// kodas, kurį reikia vykdyti, jei išraiška lygi value1
pertrauka;
2 atvejo reikšmė:
// kodas, kurį reikia vykdyti, jei išraiška lygi value2
pertrauka;
// … daugiau atvejų
numatytas:
// kodas, kurį reikia vykdyti, jei nė vienas iš aukščiau nurodytų atvejų nesutampa
}
Ar galime jungikliui perduoti nulį
Ne, negalite perduoti NULL jungiklio sakiniui, nes jiems reikia nuolatinės išraiškos.
Ar galite grįžti prie perjungimo teiginio
Ne, perjungimo teiginiai sukuria valdymo srautą programoje, todėl išėjus iš perjungimo atvejo jis negali grįžti atgal.