logo

Izjave Switch v Javi

The stavek switch v Javi je večsmerna izjava o veji. Preprosto povedano, stavek Java switch izvede en stavek iz več pogojev.

Je kot če-drugače-če lestvena izjava. Zagotavlja preprost način za pošiljanje izvajanja v različne dele kode glede na vrednost izraza. Izraz je lahko a bajt , kratek , char , oz int primitivni podatkovni tip. Preizkuša enakost spremenljivk glede na več vrednosti.



Opomba: Izraz preklopa Java mora biti sestavljen iz bajtov, kratkih, int, dolgih (z vrsto Wrapper), enumov in nizov. Začenši z JDK7 deluje tudi z oštevilčenimi tipi ( Enumi v Javi), the Vrvica razred, in Ovoj razredi.

Sintaksa

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

primer:

Primer tiskalnika velikosti

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

Izhod:



Small>

Nekaj ​​pomembnih pravil za izjave Java Switch

  1. Lahko je poljubno število primerov, ki zahtevajo samo preverjanje pogojev, vendar ne pozabite, da podvojene vrednosti primerov niso dovoljene.
  2. Vrednost za primer mora biti iste vrste podatkov kot spremenljivka v stikalu.
  3. Vrednost primera mora biti konstantna ali dobesedna. Spremenljivke niso dovoljene.
  4. Stavek break se uporablja znotraj stikala za prekinitev zaporedja stavkov.
  5. Stavek prekinitve ni obvezen. Če je izpuščeno, se bo izvajanje nadaljevalo v naslednjem primeru.
  6. Privzeti stavek je neobvezen in se lahko pojavi kjer koli znotraj preklopnega bloka. V primeru, če ni na koncu, je treba stavek break ohraniti za privzetim stavkom, da se izpusti izvajanje naslednjega stavka case.
  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.>

Diagram poteka izjave Switch-Case

Ta diagram poteka prikazuje tok nadzora in delovanje stavkov switch:

switch-statement-flowchart-in-java

Opomba: Stavek Java switch je padajoči stavek, kar pomeni, da izvede vse stavke if break ključna beseda se ne uporablja, zato je zelo pomembno, da v vsakem primeru uporabite ključno besedo break.



primer: Dan iskanja

Razmislite o naslednjem programu Java, ki deklarira int imenovan dan, katerega vrednost predstavlja dan (1-7). Koda prikaže ime dneva na podlagi vrednosti dneva z uporabo stavka switch.

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

Izhod
Friday>

break in switch case Izjave

A izjava o prekinitvi ni obvezna. Če prekinitev izpustimo, se bo izvajanje nadaljevalo v naslednji primer.

Včasih je zaželeno imeti več primerov brez odmor izjave med njimi. Na primer, razmislimo o posodobljeni različici zgornjega programa, ki prav tako prikazuje, ali je dan delovni dan ali vikend.

primer:

Program preklopa stavkov brez večkratnih prekinitev

kako dobiti trenutni datum v Javi
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);  } }>

Izhod
Tuesday is a Weekday>

Java ugnezdeni preklopni stavki

Uporabimo lahko a stikalo kot del zaporedja stavkov od an zunanje stikalo. To se imenuje a ugnezdeno stikalo . Ker stavek switch definira svoj blok, med konstantami velikih in malih črk v notranjem stikalu in tistimi v zunanjem stikalu ne pride do sporov.

primer:

Izjava o ugnezdenem stikalu

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

Izhod
elective courses : Machine Learning, Big Data>

Java Enum v izjavi Switch

Naštevanja (enume) so močan in jasen način za predstavljajo fiksen nabor poimenovanih konstant v Javi.

Enumi se uporabljajo v stavkih Switch zaradi njihove tipske varnosti in berljivosti.

primer:

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

Izhod
Sunday Monday Tuesday Wednesday Thursday Friday Saturday>

privzeti stavek v Java Switch Case

privzeti primer v primeru preklopa določa, katero kodo je treba zagnati, če se ne ujema nobena črka.

Zaželeno je, da privzeti primer zapišete na koncu vseh možnih primerov, lahko pa ga zapišete kjerkoli v stavkih switch.

primer:

Pisanje privzetka na sredini stavkov switch:

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

Izhod
2 3>

primer:

Pisanje privzetega v začetku stavkov switch

logika prvega reda
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);  }  } }>

Izhod
Default 1>

Različice oznak ohišja

Argumenta oznake velikosti in preklopa sta lahko stalen izraz. Argument stikala je lahko spremenljiv izraz.

primer:

Uporaba spremenljivega preklopnega argumenta.

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

Izhod
3>

Oznaka primera ne more biti spremenljivka ali spremenljiv izraz. Mora biti stalen izraz.

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 v stavkih Switch

Java ponuja štiri ovojni razredi za uporabo: Integer, Short, Byte in Long v stavkih switch.

primer:

Java Wrapper v preklopnem primeru.

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

Izhod:

You are 25.>

Opomba:

Ne glede na njegovo postavitev se privzeti primer izvede le, če ni izpolnjen noben od drugih pogojev primera. Torej, če ga postavite na začetek, sredino ali konec, ne spremenite osnovne logike (razen če uporabljate manj običajno tehniko, imenovano padci skozi).

Primer: V tej kodi bomo dan v tednu identificirali s številkami (1-7).

funkcija python chr
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;  }  } }>

Izhod

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


Preberi več:

  • Uporaba Enum in Switch Keyword v Javi
  • Niz v zamenjavi velikih in malih črk v Javi
  • Vadnica za Java

telovadba

Če želite vaditi stavke Java switch, lahko obiščete stran: Java Switch Case izjava Praksa

Zaključek

Preklopni stavki v Javi so strukture nadzornega toka, ki vam omogočajo izvajanje določenega bloka kode na podlagi vrednosti posameznega izraza. Lahko jih obravnavamo kot alternativo stavkom if-else-if v programiranju.

Izjave Java Switch – pogosta vprašanja

Kako uporabljati stavke switch v Javi

Če želite uporabiti stavek switch v Javi, lahko uporabite naslednjo sintakso:

stikalo (izraz) {
case value1:
// koda za izvedbo, če je izraz enak vrednosti1
odmor;
case value2:
// koda za izvedbo, če je izraz enak value2
odmor;
// … več primerov
privzeto:
// koda za izvedbo, če se noben od zgornjih primerov ne ujema
}

Ali lahko stikalu posredujemo ničelno vrednost

Ne, NULL ne morete posredovati stavku switch, ker zahteva stalen izraz v njegovem primeru.

Ali se lahko vrnete na stavek switch

Ne, stavki switch sestavijo kontrolni tok v programu, tako da se po izhodu iz primera switch ne more vrniti.