Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Switch-Case-Instructie | Basistypen en Bewerkingen
Java Basisprincipes

bookSwitch-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

Main.java

copy
12345678910111213141516171819
package 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

Main.java

copy
123456789
switch (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

Main.java

copy
123456789101112131415161718192021222324
package 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

Main.java

copy
1234567891011121314151617181920
package 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?

question mark

Wat wordt er naar de console uitgevoerd?

Select the correct answer

question mark

Waarom hebben we het sleutelwoord break nodig?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 6

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

Suggested prompts:

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?

bookSwitch-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

Main.java

copy
12345678910111213141516171819
package 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

Main.java

copy
123456789
switch (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

Main.java

copy
123456789101112131415161718192021222324
package 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

Main.java

copy
1234567891011121314151617181920
package 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?

question mark

Wat wordt er naar de console uitgevoerd?

Select the correct answer

question mark

Waarom hebben we het sleutelwoord break nodig?

Select the correct answer

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 2. Hoofdstuk 6
some-alt