logo

Bytt utsagn i Java

De switch-setning i Java er en flerveis grenerklæring. Med enkle ord, Java switch-setningen utfører én setning fra flere forhold.

Det er som en hvis-annet-hvis stigeuttalelse. Det gir en enkel måte å sende utførelse til forskjellige deler av koden basert på verdien av uttrykket. Uttrykket kan være en byte , kort , røye , eller int primitiv datatype. Den tester likheten mellom variabler mot flere verdier.



Merk: Java-svitsjuttrykk må være av byte, short, int, long (med sin Wrapper-type), enums og string. Fra og med JDK7 fungerer den også med oppregnede typer ( Enums i java), den String klasse, og Innpakning klasser.

Syntaks

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

Eksempel:

Eksempel på skriverstørrelse

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

Produksjon:



Small>

Noen viktige regler for Java Switch-uttalelser

  1. Det kan være et hvilket som helst antall saker som bare pålegger tilstandssjekk, men husk at dupliserte saksverdier ikke er tillatt.
  2. Verdien for en sak må være av samme datatype som variabelen i bryteren.
  3. Verdien for en sak må være konstant eller bokstavelig. Variabler er ikke tillatt.
  4. Break-setningen brukes inne i bryteren for å avslutte en setningssekvens.
  5. Pauseerklæringen er valgfri. Hvis den utelates, vil utførelsen fortsette til neste sak.
  6. Standardsetningen er valgfri og kan vises hvor som helst i bryterblokken. I tilfelle, hvis det ikke er på slutten, må en break-setning beholdes etter standardsetningen for å utelate utførelsen av neste case-setning.
  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.>

Flytskjema for Switch-Case Statement

Dette flytskjemaet viser kontrollflyten og virkemåten til brytersetninger:

bytte-utsagn-flytskjema-i-java

Merk: Java switch-setning er en fall-through-setning som betyr at den kjører alle setninger if bryte søkeord brukes ikke, så det er svært viktig å bruke break-nøkkelord i hvert tilfelle.



kali linux kommandoer

Eksempel: Finnedag

Tenk på følgende Java-program, det erklærer en int navngitt dag hvis verdi representerer en dag(1-7). Koden viser navnet på dagen, basert på verdien av dagen, ved hjelp av switch-setningen.

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

Produksjon
Friday>

brudd i bryterhus Uttalelser

EN bryte uttalelse er valgfritt. Hvis vi utelater bruddet, fortsetter utførelsen inn i neste sak.

Noen ganger er det ønskelig å ha flere saker uten gå i stykker uttalelser mellom dem. La oss for eksempel vurdere den oppdaterte versjonen av programmet ovenfor, det viser også om en dag er en ukedag eller en helgedag.

Eksempel:

Bytt uttalelsesprogram uten flere pauser

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

Produksjon
Tuesday is a Weekday>

Java Nested Switch Statements

Vi kan bruke en bytte om som del av utsagnssekvensen av en ytre bryter. Dette kalles en nestet bryter . Siden en brytersetning definerer blokken, oppstår det ingen konflikter mellom kasuskonstantene i den indre bryteren og de i den ytre bryteren.

Eksempel:

Nestet brytererklæring

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

Produksjon
elective courses : Machine Learning, Big Data>

Java Enum i Switch Statement

Enumerasjoner (enumer) er en kraftig og oversiktlig måte å representerer et fast sett med navngitte konstanter i Java.

Enums brukes i Switch-setninger på grunn av deres typesikkerhet og lesbarhet.

Eksempel:

Bruk av Enum i 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');  }  }  } }>

Produksjon
Sunday Monday Tuesday Wednesday Thursday Friday Saturday>

standardsetning i Java Switch Case

standard case i Switch case angir hvilken kode som skal kjøres hvis ingen case matcher.

Det er foretrukket å skrive standardsaken på slutten av alle mulige tilfeller, men den kan skrives hvor som helst i switch-setninger.

Eksempel:

Skrive standard i midten av brytersetninger:

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

Produksjon
2 3>

Eksempel:

Skrive standard ved start av switch-setninger

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

Produksjon
Default 1>

Varianter av etikett på etui

Saksetikett og bytteargumenter kan være et konstant uttrykk. Switch-argumentet kan være et variabelt uttrykk.

Eksempel:

Bruker variabel bryterargument.

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

Produksjon
3>

En kasusetikett kan ikke være et variabel- eller variabeluttrykk. Det må være et konstant uttrykk.

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 i Switch Statements

Java gir fire innpakningsklasser å bruke: Integer, Short, Byte og Long i brytersetninger.

Eksempel:

Java Wrapper i bryterboks.

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

Produksjon:

konverter strin til int
You are 25.>

Merk:

Uavhengig av plasseringen, blir standardsaken kun utført hvis ingen av de andre saksbetingelsene er oppfylt. Så å sette det i begynnelsen, midten eller slutten endrer ikke kjernelogikken (med mindre du bruker en mindre vanlig teknikk som kalles fall-through).

Eksempel: I denne koden vil vi identifisere ukedagen gjennom (1-7) tall.

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

Produksjon

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


Les mer:

  • Bruk av Enum og Switch Keyword i Java
  • String i Switch Case i Java
  • Java-opplæring

Trening

For å øve på Java-svitsjsetninger kan du besøke siden: Java Switch Case statement Praksis

Konklusjon

Switch-setninger i Java er kontrollflytstrukturer som lar deg utføre en bestemt kodeblokk basert på verdien av et enkelt uttrykk. De kan betraktes som et alternativ til if-else-if-utsagn i programmering.

Java Switch-erklæringer - Vanlige spørsmål

Hvordan bruke switch-setninger i Java

For å bruke switch-setning i Java, kan du bruke følgende syntaks:

switch (uttrykk) {
saksverdi 1:
// kode som skal utføres hvis uttrykk er lik verdi1
gå i stykker;
saksverdi 2:
// kode som skal utføres hvis uttrykk er lik verdi2
gå i stykker;
// … flere saker
misligholde:
// kode som skal utføres hvis ingen av tilfellene ovenfor samsvarer
}

Kan vi overføre null til en bryter

Nei, du kan ikke sende NULL til en switch-setning da de krever konstant uttrykk i tilfellet.

Kan du gå tilbake til en switch-setning

Nei, switch-setninger bygger en kontrollflyt i programmet, slik at den ikke kan gå tilbake etter å ha avsluttet en switch-tilfelle.