De switch-instructie in Java is een multi-way branch-instructie. In eenvoudige bewoordingen voert de Java-switch-instructie één instructie uit op basis van meerdere voorwaarden.
Het is als een als-anders-als ladder verklaring. Het biedt een eenvoudige manier om de uitvoering naar verschillende delen van de code te verzenden op basis van de waarde van de expressie. De uitdrukking kan a zijn byte , kort , verkoold , of int primitief gegevenstype. Het test de gelijkheid van variabelen aan de hand van meerdere waarden.
Opmerking: De Java-switchexpressie moet bestaan uit byte, short, int, long (met het Wrapper-type), enums en string. Vanaf JDK7 werkt het ook met opgesomde typen ( Enums in Java), de Snaar klasse, en Wikkel klassen.
Syntaxis
switch(expression) { case value1 : // Statements break; // break is optional case value2 : // Statements break; // break is optional .... .... .... default : // default Statement }>Voorbeeld:
Formaat printervoorbeeld
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'); } } }> Uitgang:
Small>
Enkele belangrijke regels voor Java Switch-instructies
- Er kan een onbeperkt aantal gevallen zijn waarbij slechts een voorwaardecontrole wordt opgelegd, maar onthoud dat dubbele case(s)-waarden niet zijn toegestaan.
- De waarde voor een case moet van hetzelfde gegevenstype zijn als de variabele in de switch.
- De waarde voor een case moet constant of letterlijk zijn. Variabelen zijn niet toegestaan.
- De break-instructie wordt binnen de switch gebruikt om een instructiereeks te beëindigen.
- De break-instructie is optioneel. Als dit wordt weggelaten, gaat de uitvoering door naar de volgende zaak.
- De standaardinstructie is optioneel en kan overal in het schakelblok verschijnen. Als dit niet aan het einde is, moet een break-instructie na de standaardinstructie worden bewaard om de uitvoering van de volgende case-instructie over te slaan.
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.>
Stroomdiagram van Switch-Case-verklaring
Dit stroomdiagram toont de besturingsstroom en werking van switch-instructies:

Opmerking: De Java-switch-instructie is een fall-through-instructie, wat betekent dat alle instructies if worden uitgevoerd sleutelwoord breken wordt niet gebruikt, dus het is zeer essentieel om in elk geval het zoekwoord break te gebruiken.
Voorbeeld: Dag vinden
Beschouw het volgende Java-programma: het declareert een int met de naam dag waarvan de waarde een dag (1-7) vertegenwoordigt. De code geeft de naam van de dag weer, gebaseerd op de waarde van de dag, met behulp van de switch-instructie.
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); } }> Uitvoer
Friday>
breuk in schakelkast Verklaringen
A verklaring breken is optioneel. Als we de pauze achterwege laten, gaat de uitvoering door in de volgende zaak.
Soms is het wenselijk om meerdere cases zonder te hebben pauze verklaringen daartussen. Laten we bijvoorbeeld eens kijken naar de bijgewerkte versie van het bovenstaande programma, deze geeft ook aan of een dag een weekdag of een weekenddag is.
Voorbeeld:
Schakel instructieprogramma uit zonder meerdere pauzes
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); } }> Uitvoer
Tuesday is a Weekday>
Java Geneste Switch-instructies
Wij kunnen gebruik maken van een schakelaar als onderdeel van de instructiereeks van een buitenste schakelaar. Dit heet een geneste schakelaar . Omdat een switch-instructie zijn blok definieert, ontstaan er geen conflicten tussen de hoofdletterconstanten in de binnenste schakelaar en die in de buitenste schakelaar.
Voorbeeld:
Geneste Switch-verklaring
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'); } } } }> Uitvoer
elective courses : Machine Learning, Big Data>
Java Enum in Switch-instructie
Opsommingen (enums) zijn een krachtige en duidelijke manier om vertegenwoordigen een vaste reeks benoemde constanten op Java.
Enums worden gebruikt in Switch-instructies vanwege hun typeveiligheid en leesbaarheid.
Voorbeeld:
Gebruik van Enum in 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'); } } } }> Uitvoer
Sunday Monday Tuesday Wednesday Thursday Friday Saturday>
standaardinstructie in Java Switch Case
standaard case in de Switch-case specificeert welke code moet worden uitgevoerd als er geen case overeenkomt.
Het verdient de voorkeur om de standaard case aan het einde van alle mogelijke cases te schrijven, maar deze kan op elke plaats in switch-instructies worden geschreven.
Voorbeeld:
Standaard in het midden van switch-instructies schrijven:
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); } } }> Uitvoer
2 3>
Voorbeeld:
Standaard schrijven bij het starten van switch-instructies
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); } } }> Uitvoer
Default 1>
Variaties op dooslabels
Caselabel en switch-argumenten kunnen een constante expressie zijn. Het switch-argument kan een variabele expressie zijn.
Voorbeeld:
Met behulp van variabele-schakelaarargumenten.
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'); } } }> Uitvoer
3>
Een caselabel kan geen variabele of variabele-expressie zijn. Het moet een constante uitdrukking zijn.
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 in Switch-instructies
Java biedt er vier wrap klassen te gebruiken: Integer, Short, Byte en Long in switch-instructies.
Voorbeeld:
Java-wrapper in schakelkast.
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.'); } } }> Uitgang:
You are 25.>
Opmerking:
Ongeacht de plaatsing wordt de standaardzaak alleen uitgevoerd als aan geen van de andere zaakvoorwaarden is voldaan. Dus als je het aan het begin, midden of einde plaatst, verandert de kernlogica niet (tenzij je een minder gebruikelijke techniek gebruikt die fall-through wordt genoemd).
Voorbeeld: In deze code identificeren we de weekdag via (1-7) cijfers.
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; } } }> Uitvoer
java boolean naar string
Enter a day number (1-7): 8 Not a valid weekday.>
Lees verder:
- Gebruik van Enum en Switch Keyword in Java
- Tekenreeks in schakelkast in Java
- Java-zelfstudie
Oefening
Om Java-switch-instructies te oefenen, kunt u de pagina bezoeken: Java Switch Case-instructie Oefenen
Conclusie
Switch-instructies in Java zijn controlestroomstructuren waarmee u een bepaald codeblok kunt uitvoeren op basis van de waarde van een enkele expressie. Ze kunnen worden beschouwd als een alternatief voor if-else-if-instructies bij het programmeren.
Java Switch-verklaringen - Veelgestelde vragen
Hoe switch-instructies in Java te gebruiken
Om de switch-instructie in Java te gebruiken, kunt u de volgende syntaxis gebruiken:
schakelaar (expressie) {
casuswaarde1:
// code die moet worden uitgevoerd als de expressie gelijk is aan waarde1
pauze;
casuswaarde2:
// code die moet worden uitgevoerd als de expressie gelijk is aan waarde2
pauze;
// … meer gevallen
standaard:
// code die moet worden uitgevoerd als geen van de bovenstaande gevallen overeenkomt
}
Kunnen we null doorgeven aan een schakelaar?
Nee, u kunt geen NULL doorgeven aan een switch-instructie, omdat deze in dat geval een constante expressie vereist.
Kunt u terugkeren naar een overstapverklaring?
Nee, switch-instructies bouwen een controlestroom in het programma op, zodat deze niet terug kan gaan na het verlaten van een switch-case.