In deze zelfstudie leert u de instructie switch in Java te gebruiken om de stroom van de uitvoering van uw programma te regelen met behulp van voorbeelden.
De switch
instructie stelt ons in staat om een blok code uit te voeren uit vele alternatieven.
De syntaxis van de switch
instructie in Java is:
switch (expression) ( case value1: // code to be executed if // expression is equal to value1 break; case value2: // code to be executed if // expression is equal to value2 break;… … default: // default statements )
Hoe werkt de switch-instructie?
De uitdrukking wordt één keer geëvalueerd en vergeleken met de waarden van elk caselabel .
- Als er een match is, wordt de corresponderende code na het corresponderende case-label uitgevoerd.
Als de waarde van de uitdrukking bijvoorbeeld gelijk is aan waarde2, wordt de code ernacase value2:
uitgevoerd. - Als er geen overeenkomst is, wordt de code erna
default:
uitgevoerd.
Opmerking : we kunnen dezelfde functionaliteit gebruiken door Java te gebruiken als … anders … als ladder. De syntaxis van de switch-instructie is echter schoner en veel gemakkelijker te lezen en te schrijven.
Stroomschema van Switch Statement

Voorbeeld 1: Java switch-instructie
// Java Program to check the size // using the switch… case statement class Main ( public static void main(String() args) ( int number = 44; String size; // switch statement to check size switch (number) ( case 29: size = "Small"; break; case 42: size = "Medium"; break; // match the value of week case 44: size = "Large"; break; case 48: size = "Extra Large"; break; default: size = "Unknown"; break; ) System.out.println("Size: " + size); ) )
Uitgang :
Grote maat
In het bovenstaande voorbeeld hebben we de instructie switch gebruikt om de maat te vinden. Hier hebben we een variabel nummer. De variabele wordt vergeleken met de waarde van elke case-instructie.
Omdat de waarde overeenkomt met casus 44 , wordt aan de groottevariabele waarde toegewezen Large
.
break-instructie in Java switch… case
Merk op dat we de break
verklaring in elk casusblok hebben gebruikt . Dit is handig om de verklaring te beëindigen.
Als de break
instructie niet wordt gebruikt, worden alle gevallen na de overeenkomende case uitgevoerd. Bijvoorbeeld,
class Main ( public static void main(String() args) ( int expression = 2; // switch statement to check size switch (expression) ( case 1: System.out.println("Case 1"); // matching case case 2: System.out.println("Case 2"); case 3: System.out.println("Case 3"); default: System.out.println("Default case"); ) ) )
Uitvoer
Geval 2 Geval 3 Standaardgeval
In het bovenstaande voorbeeld hebben we de break
instructie niet gebruikt . Hier komt de uitdrukking overeen met case 2
.
U kunt zien dat case 2
alle volgende gevallen ook worden uitgevoerd.
Dit is niet de gewenste output. Daarom is het nodig om de break
instructie bij elk caseblok te gebruiken .
Voorbeeld 2: Rekenmachine maken met de switch-instructie
Het onderstaande programma heeft drie input van de gebruiker nodig: één operator en 2 nummers . Op basis van de operator die door de gebruiker is opgegeven, voert het de berekening uit op de cijfers. Vervolgens wordt het resultaat op het scherm weergegeven.
Voordat u het programma doorloopt, moet u ervoor zorgen dat u bekend bent met Java Scanner om input van de gebruiker te krijgen.
import java.util.Scanner; class Main ( public static void main(String() args) ( char operator; Double number1, number2, result; // create an object of Scanner class Scanner input = new Scanner(System.in); // ask users to enter operator System.out.print("Choose an operator: +, -, *, or /: "); operator = input.next().charAt(0); // ask users to enter numbers System.out.print("Enter first number: "); number1 = input.nextDouble(); System.out.println("Enter second number: "); number2 = input.nextDouble(); switch (operator) ( // performs addition between numbers case '+': result = number1 + number2; System.out.print(number1 + "+" + number2 + " = " + result); break; // performs subtraction between numbers case '-': result = number1 - number2; System.out.print(number1 + "-" + number2 + " = " + result); break; // performs multiplication between numbers case '*': result = number1 * number2; System.out.print(number1 + "*" + number2 + " = " + result); break; // performs division between numbers case '/': result = number1 / number2; System.out.print(number1 + "/" + number2 + " = " + result); break; default: System.out.println("Invalid operator!"); break; ) input.close(); ) )
Uitgang 1
Kies een operator: +, -, * of /: + Voer eerste cijfer in: 23 Voer tweede cijfer in: 21 23,0 + 21,0 = 44,0
Uitgang 2
Kies een operator: +, -, * of /: - Voer het eerste nummer in: 24 Voer het tweede nummer in: 13 24.0-13.0 = 11.0
Uitgang 3
Kies een operator: +, -, * of /: * Voer eerste cijfer in: 12 Voer tweede cijfer in: 6 12,0 * 6,0 = 72,0
Uitgang 4
Kies een operator: +, -, * of /: / Voer eerste cijfer in: 36 Voer tweede cijfer in: 6 36,0 / 6,0 = 6,0
Uitgang 5
Kies een operator: +, -, * of /:? Voer het eerste nummer in: 12 Voer het tweede nummer in: 23 Ongeldige operator!
In het bovenstaande voorbeeld gebruiken we de switch… case
instructie om optellen, aftrekken, vermenigvuldigen en delen uit te voeren.
Opmerking : de Java-switch-instructie werkt alleen met:
- Java Primitieve gegevenstypen: byte, short, char en int
- Java Opgesomde typen
- Java String Class
- Java Wrapper Classes: Character, Byte, Short en Integer.