logo

Vaihda lausunnot Javassa

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ä

  1. Tapauksia, jotka vaativat vain ehtotarkistuksen, voi olla mikä tahansa määrä, mutta muista, että päällekkäiset tapausarvot eivät ole sallittuja.
  2. Tapauksen arvon on oltava samaa tietotyyppiä kuin kytkimen muuttuja.
  3. Tapauksen arvon on oltava vakio tai kirjaimellinen. Muuttujat eivät ole sallittuja.
  4. Break-käskyä käytetään kytkimen sisällä lausesarjan päättämiseen.
  5. Break-lause on valinnainen. Jos se jätetään pois, suoritus jatkuu seuraavaan tapaukseen.
  6. 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:

kytkin-lauseke-vuokaavio-javassa

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

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).

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

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.