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
- Det kan være et hvilket som helst antall saker som bare pålegger tilstandssjekk, men husk at dupliserte saksverdier ikke er tillatt.
- Verdien for en sak må være av samme datatype som variabelen i bryteren.
- Verdien for en sak må være konstant eller bokstavelig. Variabler er ikke tillatt.
- Break-setningen brukes inne i bryteren for å avslutte en setningssekvens.
- Pauseerklæringen er valgfri. Hvis den utelates, vil utførelsen fortsette til neste sak.
- 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:

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.