The vaihtokäsky Javassa on monisuuntainen haaralause. Yksinkertaisesti sanottuna Java switch -käsky suorittaa yhden käskyn useista ehdoista.
Se on kuin an jos-muu-jos tikkaat lausunto. Se tarjoaa helpon tavan lähettää suoritus koodin eri osiin lausekkeen arvon perusteella. Ilmaisu voi olla a tavu , lyhyt , hiiltyä , tai int primitiivinen tietotyyppi. Se testaa muuttujien yhtäläisyyttä useisiin arvoihin verrattuna.
Huomautus: Java-kytkimen lausekkeen on oltava tavua, lyhyttä, int:tä, pitkää (sen Wrapper-tyyppiä), enumeita ja merkkijonoa. JDK7:stä alkaen se toimii myös lueteltujen tyyppien kanssa ( Enums javassa), the merkkijono luokka ja Kääre luokat.
Syntaksi
switch(expression) { case value1 : // Statements break; // break is optional case value2 : // Statements break; // break is optional .... .... .... default : // default Statement }>Esimerkki:
Esimerkki tulostimesta
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'); } } }> Lähtö:
Small>
Tärkeitä Java Switch -lauseita koskevia sääntöjä
- Tapauksia, jotka vaativat vain ehtotarkistuksen, voi olla mikä tahansa määrä, mutta muista, että päällekkäiset tapausarvot eivät ole sallittuja.
- Tapauksen arvon on oltava samaa tietotyyppiä kuin kytkimen muuttuja.
- Tapauksen arvon on oltava vakio tai kirjaimellinen. Muuttujat eivät ole sallittuja.
- Break-käskyä käytetään kytkimen sisällä lausesarjan päättämiseen.
- Break-lause on valinnainen. Jos se jätetään pois, suoritus jatkuu seuraavaan tapaukseen.
- Oletuskäsky on valinnainen ja voi näkyä missä tahansa kytkinlohkon sisällä. Siinä tapauksessa, jos se ei ole lopussa, break-lause on säilytettävä oletuskäskyn jälkeen, jotta seuraavan tapauskäskyn suorittaminen jätetään pois.
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 Statementin vuokaavio
Tämä vuokaavio näyttää ohjausvirran ja kytkinlauseiden toiminnan:

Huomautus: Java switch -lause on läpimenolause, joka tarkoittaa, että se suorittaa kaikki lauseet if taukoavainsana ei käytetä, joten on erittäin tärkeää käyttää break-avainsanaa kussakin tapauksessa.
Esimerkki: Löytöpäivä
Tarkastellaan seuraavaa Java-ohjelmaa, se ilmoittaa int named dayn, jonka arvo edustaa päivää(1-7). Koodi näyttää päivän nimen päivän arvon perusteella kytkinlausekkeen avulla.
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); } }> Lähtö
Friday>
katkos kytkinkotelon lausunnot
A katkeaa lausunto on valinnainen. Jos jätämme tauon pois, suoritus jatkuu seuraavaan tapaukseen.
Joskus on toivottavaa olla useita tapauksia ilman tauko lausunnot heidän välillään. Tarkastellaanpa esimerkiksi yllä olevan ohjelman päivitettyä versiota, se näyttää myös, onko päivä arki- vai viikonloppupäivä.
Esimerkki:
Vaihda lausekeohjelmaa ilman useita taukoja
bash for loopJava
// 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); } }> Lähtö
Tuesday is a Weekday>
Java sisäkkäisten kytkinten lausunnot
Voimme käyttää a vaihtaa kuten osa lausesarjaa an ulkoinen kytkin. Tätä kutsutaan a sisäkkäinen kytkin . Koska kytkinkäsky määrittelee lohkonsa, sisäisen kytkimen ja ulkokytkimen tapausvakioiden välillä ei synny ristiriitoja.
Esimerkki:
Sisäkkäinen kytkinlausunto
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'); } } } }> Lähtö
elective courses : Machine Learning, Big Data>
Java Enum Switch-lauseessa
Luettelo (enums) on tehokas ja selkeä tapa edustavat kiinteää joukkoa nimettyjä vakioita Javassa.
intialainen näyttelijä Rani Mukerji
Enumeita käytetään Switch-lauseissa niiden tyyppiturvallisuuden ja luettavuuden vuoksi.
Esimerkki:
Enumin käyttö Switchissä
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'); } } } }> Lähtö
Sunday Monday Tuesday Wednesday Thursday Friday Saturday>
oletuslauseke Java Switch Case -sovelluksessa
oletuskoko Switch casessa määrittää, mikä koodi suoritetaan, jos yksikään tapaus ei täsmää.
Oletustapaus on suositeltavaa kirjoittaa kaikkien mahdollisten tapausten loppuun, mutta se voidaan kirjoittaa mihin tahansa kohtaan kytkinkäskyissä.
Esimerkki:
Oletuksen kirjoittaminen kytkinlauseiden keskelle:
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); } } }> Lähtö
2 3>
Esimerkki:
Oletusarvon kirjoittaminen kytkinlauseiden alussa
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); } } }> Lähtö
Default 1>
Koteloiden tarrojen muunnelmia
Case label ja switch argumentit voivat olla vakiolauseke. Kytkinargumentti voi olla muuttujalauseke.
Esimerkki:
Muuttuvan kytkimen argumentin käyttö.
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'); } } }> Lähtö
3>
Tapaustunniste ei voi olla muuttuja tai muuttujalauseke. Sen täytyy olla jatkuva ilmaisu.
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-kääre Switch-lausekkeissa
Java tarjoaa neljä käärekurssit käytettäväksi: Integer, Short, Byte ja Long kytkinlauseissa.
Esimerkki:
Java Wrapper kytkinkotelossa.
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.'); } } }> Lähtö:
You are 25.>
Huomautus:
Sijoituksestaan riippumatta oletustapaus suoritetaan vain, jos mikään muu tapauksen ehto ei täyty. Joten sen sijoittaminen alkuun, keskelle tai loppuun ei muuta ydinlogiikkaa (ellet käytä vähemmän yleistä tekniikkaa, nimeltä fall-through).
Esimerkki: Tässä koodissa tunnistetaan viikonpäivä numeroilla (1-7).
konekirjoituskytkinJava
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; } } }> Lähtö
Enter a day number (1-7): 8 Not a valid weekday.>
Lue lisää:
- Enumin ja Switch Keywordin käyttö Javassa
- Merkkijono Switch Case -muodossa Javassa
- Java opetusohjelma
Harjoittele
Voit harjoitella Java-kytkinlauseita vierailemalla sivulla: Java Switch -tapauskäytäntö
Johtopäätös
Javan kytkinkäskyt ovat ohjausvirtarakenteita, joiden avulla voit suorittaa tietyn koodilohkon yksittäisen lausekkeen arvon perusteella. Niitä voidaan pitää vaihtoehtona if-else-if-lauseille ohjelmoinnissa.
Java Switch -lausunnot - UKK
Kuinka käyttää kytkinlauseita Javassa
Voit käyttää kytkinlausetta Javassa käyttämällä seuraavaa syntaksia:
kytkin (lauseke) {
tapauksen arvo1:
// Suoritettava koodi, jos lauseke on yhtä suuri kuin arvo1
tauko;
tapauksen arvo2:
// Suoritettava koodi, jos lauseke on yhtä suuri kuin arvo2
tauko;
// … lisää tapauksia
oletus:
// Suoritettava koodi, jos mikään yllä olevista tapauksista ei täsmää
}
Voimmeko siirtää nollan kytkimelle
Ei, et voi välittää NULL-arvoa switch-käskylle, koska ne vaativat vakiolausekkeen.
Voitko palata kytkinlauseeseen
Ei, kytkinkäskyt rakentavat ohjausvirran ohjelmaan, joten se ei voi palata takaisin kytkintapauksesta poistumisen jälkeen.