Switch-Case-Instructie
Afhandelen van Meerdere Verschillende Condities
Wanneer er veel condities gecontroleerd moeten worden, is het gebruik van meerdere if-else-ketens mogelijk niet handig.
Bijvoorbeeld:
Main.java
12345678910111213141516171819package com.example; public class Main { public static void main(String[] args) { // You can change the value of the variable `a` to test the `if` statement int a = 30; if (a == 10) { System.out.println(10); } else if (a == 20) { System.out.println(20); } else if (a == 30) { System.out.println(30); } else if (a == 40) { System.out.println(40); } else { System.out.println(a); } } }
Het is duidelijk dat dit niet overzichtelijk en professioneel oogt. Voor dergelijke gevallen biedt Java de switch-case-instructie.
switch-case-instructie
De switch-case-instructie bestaat uit verschillende onderdelen:
Main.java
123456789switch (expression) { case value_1: // Code to be executed if expression matches `value_1` break; // Break is used to exit the `switch` statement. case value_2: // Code to be executed if expression matches `value_2` break; // Break is used to exit the `switch` statement. ............ default: // Code to be executed if no cases match // Optional, but executed if no other case matches }
In de bovenstaande code is te zien dat switch-blokken worden gebruikt om selectief bewerkingen uit te voeren. Hierbij wordt uitgegaan van de expressie, die enigszins verschilt van een voorwaarde. Hier wordt een waarde of een expressie ingevoerd, bijvoorbeeld 10 / 2. In dit geval wordt het case-blok met de signatuur case 5 uitgevoerd, omdat de expressie hierboven gelijk is aan 5.
Ook kan hier een voorwaarde worden gebruikt. In dat geval moet een Booleaanse expressie in het expressieblok worden geschreven, bijvoorbeeld: 10 / 2 == 5. Vervolgens worden hieronder twee cases geschreven:
case true:
case false:
Deze structuur zal echter nauwelijks te onderscheiden zijn van een gewone if-else.
Het sleutelwoord "break"
Dit sleutelwoord wordt gebruikt om de uitvoering van een switch-case-instructie te beëindigen en het blok te verlaten. Dit woord wordt vaak gebruikt in lussen, die in de volgende hoofdstukken worden besproken. Gebruik dit sleutelwoord wanneer het nodig is om uit een codeblok te breken en de uitvoering ervan te stoppen.
Laten we nu de code die we hierboven hebben geschreven verbeteren met behulp van de switch-case-instructie:
Main.java
123456789101112131415161718192021222324package com.example; public class Main { public static void main(String[] args) { // You can change the value of the variable `a` to test the `switch` statement int a = 30; switch (a) { case 10: System.out.println(10); break; case 20: System.out.println(20); break; case 30: System.out.println(30); break; case 40: System.out.println(40); break; default: System.out.println("There is no matching value"); } } }
Hieruit blijkt dat de code veel overzichtelijker en eenvoudiger te lezen en uit te breiden is geworden. Het is niet meer nodig om een extra if-instructie helemaal opnieuw te schrijven als er aanvullende voorwaarden nodig zijn. In plaats daarvan kan eenvoudig een extra case-blok aan de switch-case statement worden toegevoegd.
Laten we het switch-case blokdiagram bekijken:
Zoals we kunnen zien, kunnen er zoveel cases zijn als gewenst. Elke case vereist een eigen voorwaarde en code, die wordt uitgevoerd wanneer het programma het betreffende case-blok binnenkomt.
Het is aan te raden het break-trefwoord te gebruiken, omdat het programma het switch-blok niet verlaat totdat alle case-blokken zijn uitgevoerd. Het default-blok wordt uitgevoerd als geen van de case-blokken wordt betreden of als het break-trefwoord niet is gebruikt.
Laten we een ander voorbeeld bekijken zonder break-trefwoorden:
Main.java
1234567891011121314151617181920package com.example; public class Main { public static void main(String[] args) { // You can change the value of the variable `a` to test the `switch` statement int a = 10; switch (a) { case 10: System.out.println(10); case 20: System.out.println(20); case 30: System.out.println(30); case 40: System.out.println(40); default: System.out.println("There is no matching value"); } } }
We hebben meerdere waarden ontvangen die afwijken van wat we verwachtten. Daarnaast hebben we informatie verkregen uit de blokken case 10 en default. Dit is precies de reden waarom we het sleutelwoord break na elk blok gebruiken. Op deze manier verlaat het programma de switch-instructie en gaat het verder met de uitvoering.
1. Wat wordt er naar de console uitgevoerd?
2. Waarom hebben we het sleutelwoord break nodig?
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Can you explain the difference between the classic and new switch syntax in Java?
What happens if I forget to use the break statement in a switch-case?
Can you give more examples of when to use switch-case instead of if-else?
Geweldig!
Completion tarief verbeterd naar 2.7
Switch-Case-Instructie
Veeg om het menu te tonen
Afhandelen van Meerdere Verschillende Condities
Wanneer er veel condities gecontroleerd moeten worden, is het gebruik van meerdere if-else-ketens mogelijk niet handig.
Bijvoorbeeld:
Main.java
12345678910111213141516171819package com.example; public class Main { public static void main(String[] args) { // You can change the value of the variable `a` to test the `if` statement int a = 30; if (a == 10) { System.out.println(10); } else if (a == 20) { System.out.println(20); } else if (a == 30) { System.out.println(30); } else if (a == 40) { System.out.println(40); } else { System.out.println(a); } } }
Het is duidelijk dat dit niet overzichtelijk en professioneel oogt. Voor dergelijke gevallen biedt Java de switch-case-instructie.
switch-case-instructie
De switch-case-instructie bestaat uit verschillende onderdelen:
Main.java
123456789switch (expression) { case value_1: // Code to be executed if expression matches `value_1` break; // Break is used to exit the `switch` statement. case value_2: // Code to be executed if expression matches `value_2` break; // Break is used to exit the `switch` statement. ............ default: // Code to be executed if no cases match // Optional, but executed if no other case matches }
In de bovenstaande code is te zien dat switch-blokken worden gebruikt om selectief bewerkingen uit te voeren. Hierbij wordt uitgegaan van de expressie, die enigszins verschilt van een voorwaarde. Hier wordt een waarde of een expressie ingevoerd, bijvoorbeeld 10 / 2. In dit geval wordt het case-blok met de signatuur case 5 uitgevoerd, omdat de expressie hierboven gelijk is aan 5.
Ook kan hier een voorwaarde worden gebruikt. In dat geval moet een Booleaanse expressie in het expressieblok worden geschreven, bijvoorbeeld: 10 / 2 == 5. Vervolgens worden hieronder twee cases geschreven:
case true:
case false:
Deze structuur zal echter nauwelijks te onderscheiden zijn van een gewone if-else.
Het sleutelwoord "break"
Dit sleutelwoord wordt gebruikt om de uitvoering van een switch-case-instructie te beëindigen en het blok te verlaten. Dit woord wordt vaak gebruikt in lussen, die in de volgende hoofdstukken worden besproken. Gebruik dit sleutelwoord wanneer het nodig is om uit een codeblok te breken en de uitvoering ervan te stoppen.
Laten we nu de code die we hierboven hebben geschreven verbeteren met behulp van de switch-case-instructie:
Main.java
123456789101112131415161718192021222324package com.example; public class Main { public static void main(String[] args) { // You can change the value of the variable `a` to test the `switch` statement int a = 30; switch (a) { case 10: System.out.println(10); break; case 20: System.out.println(20); break; case 30: System.out.println(30); break; case 40: System.out.println(40); break; default: System.out.println("There is no matching value"); } } }
Hieruit blijkt dat de code veel overzichtelijker en eenvoudiger te lezen en uit te breiden is geworden. Het is niet meer nodig om een extra if-instructie helemaal opnieuw te schrijven als er aanvullende voorwaarden nodig zijn. In plaats daarvan kan eenvoudig een extra case-blok aan de switch-case statement worden toegevoegd.
Laten we het switch-case blokdiagram bekijken:
Zoals we kunnen zien, kunnen er zoveel cases zijn als gewenst. Elke case vereist een eigen voorwaarde en code, die wordt uitgevoerd wanneer het programma het betreffende case-blok binnenkomt.
Het is aan te raden het break-trefwoord te gebruiken, omdat het programma het switch-blok niet verlaat totdat alle case-blokken zijn uitgevoerd. Het default-blok wordt uitgevoerd als geen van de case-blokken wordt betreden of als het break-trefwoord niet is gebruikt.
Laten we een ander voorbeeld bekijken zonder break-trefwoorden:
Main.java
1234567891011121314151617181920package com.example; public class Main { public static void main(String[] args) { // You can change the value of the variable `a` to test the `switch` statement int a = 10; switch (a) { case 10: System.out.println(10); case 20: System.out.println(20); case 30: System.out.println(30); case 40: System.out.println(40); default: System.out.println("There is no matching value"); } } }
We hebben meerdere waarden ontvangen die afwijken van wat we verwachtten. Daarnaast hebben we informatie verkregen uit de blokken case 10 en default. Dit is precies de reden waarom we het sleutelwoord break na elk blok gebruiken. Op deze manier verlaat het programma de switch-instructie en gaat het verder met de uitvoering.
1. Wat wordt er naar de console uitgevoerd?
2. Waarom hebben we het sleutelwoord break nodig?
Bedankt voor je feedback!