Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Switch-instructie | Introductie tot Conditionele Instructies
C++ Conditionele Uitspraken

bookSwitch-instructie

De switch-instructie is ook een van de controle­structuren die besluitvorming in programma's vereenvoudigt. Het biedt een efficiënte manier om een expressie te evalueren en verschillende codeblokken uit te voeren op basis van de waarde van die expressie. Dit is vooral handig bij een groot aantal vertakkingscondities.

Het is primair ontworpen voor gebruik met numerieke waarden, zoals gehele getallen (int) en tekens (char).

switch.h

switch.h

copy
12345678910111213141516
switch (expression) { case value1: // Code to execute when expression matches value1 break; case value2: // Code to execute when expression matches value2 break; // More cases can be added as needed // Code to execute when expression matches valueN default: // Code to execute when none of the case labels match the expression }
  • De expressie wordt één keer geëvalueerd en het programma springt naar de juiste case op basis van de waarde van de expressie;

  • Elke case vertegenwoordigt een specifieke waarde of reeks waarden die de expressie kan aannemen;

  • De break-instructie wordt gebruikt om het switch-blok te verlaten nadat de code voor een bepaalde case is uitgevoerd;

  • De default is optioneel en wordt gebruikt wanneer geen van de gespecificeerde cases overeenkomt met de expressie. Het fungeert als een vangnetoptie.

Stel dat je een restaurant bezit en een menu wilt aanbieden op basis van genummerde codes. Hier volgt de coderepresentatie van de menu-items.

main.cpp

main.cpp

copy
1234567891011121314151617181920212223242526
#include <iostream> int main() { // try to change the value int menu_number = 1; switch (menu_number) { case 1: std::cout << "Pizza" << std::endl; break; case 2: std::cout << "Burger with fries" << std::endl; break; case 3: std::cout << "Pasta with meatballs" << std::endl; break; default: std::cout << "We don`t have this in our menu" << std::endl; break; } }

Ja, dit kunt u bereiken met een eenvoudige if-instructie, en het zou er ongeveer zo uitzien:

main.cpp

main.cpp

copy
123456789101112131415161718192021222324
#include <iostream> int main() { // try to change the value int menu_number = 1; if (menu_number == 1) { std::cout << "Pizza" << std::endl; } else if (menu_number == 2) { std::cout << "Burger with fries" << std::endl; } else if (menu_number == 3) { std::cout << "Pasta with meatballs" << std::endl; } else { std::cout << "We don`t have this in our menu" << std::endl; } }

Het zal op dezelfde manier en zoals verwacht werken, maar het is over het algemeen beter om een switch-statement te gebruiken omdat dit een duidelijkere, beter leesbare en, het belangrijkste, makkelijker te onderhouden en schaalbare manier biedt om dit soort controleflow te beheren.

Het weglaten van het break-trefwoord in een switch-statement kan leiden tot onverwacht programmagedrag, omdat de code doorgaat met uitvoeren in de volgende cases. Het opzettelijk weglaten van break kan echter worden gebruikt om meerdere cases binnen hetzelfde codeblok te beheren. Deze aanpak, bekend als fall-through, maakt het mogelijk om gerelateerde cases samen te behandelen.

main.cpp

main.cpp

copy
12345678910111213141516171819202122
#include <iostream> int main() { // change the number and look how it affect the output int number = 3; switch (number) { case 1: std::cout << '1' << std::endl; case 2: std::cout << '2' << std::endl; case 3: std::cout << '3' << std::endl; case 4: std::cout << '4' << std::endl; case 5: std::cout << '5' << std::endl; break; } }
Taak

Swipe to start coding

U bouwt een wekelijkse plannersysteem dat de naam van de dag retourneert op basis van het nummer (1 voor maandag, 2 voor dinsdag, enz.).

  1. Gebruik binnen de functie getDayName een switch-instructie op dayNumber:
    • Wijs voor elk geval van 1 tot en met 7 de bijbehorende dagnaam ("Monday", "Tuesday", ..., "Sunday") toe aan de variabele dayName.
    • Gebruik de break-instructie na elk geval om doorschuiven te voorkomen.
    • Gebruik een default-geval om "Invalid day" toe te wijzen als de invoer niet tussen 1 en 7 ligt.
  2. Retourneer de waarde van dayName vanuit de functie.

Voorbeeld

getDayName(1)"Monday"
getDayName(5)"Friday"
getDayName(9)"Invalid day number"

Oplossing

solution.cpp

solution.cpp

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 6
single

single

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 show me an example of a switch statement in code?

What happens if I forget to include a break statement in a switch case?

Can you explain more about the fall-through behavior in switch statements?

close

Awesome!

Completion rate improved to 7.69

bookSwitch-instructie

Veeg om het menu te tonen

De switch-instructie is ook een van de controle­structuren die besluitvorming in programma's vereenvoudigt. Het biedt een efficiënte manier om een expressie te evalueren en verschillende codeblokken uit te voeren op basis van de waarde van die expressie. Dit is vooral handig bij een groot aantal vertakkingscondities.

Het is primair ontworpen voor gebruik met numerieke waarden, zoals gehele getallen (int) en tekens (char).

switch.h

switch.h

copy
12345678910111213141516
switch (expression) { case value1: // Code to execute when expression matches value1 break; case value2: // Code to execute when expression matches value2 break; // More cases can be added as needed // Code to execute when expression matches valueN default: // Code to execute when none of the case labels match the expression }
  • De expressie wordt één keer geëvalueerd en het programma springt naar de juiste case op basis van de waarde van de expressie;

  • Elke case vertegenwoordigt een specifieke waarde of reeks waarden die de expressie kan aannemen;

  • De break-instructie wordt gebruikt om het switch-blok te verlaten nadat de code voor een bepaalde case is uitgevoerd;

  • De default is optioneel en wordt gebruikt wanneer geen van de gespecificeerde cases overeenkomt met de expressie. Het fungeert als een vangnetoptie.

Stel dat je een restaurant bezit en een menu wilt aanbieden op basis van genummerde codes. Hier volgt de coderepresentatie van de menu-items.

main.cpp

main.cpp

copy
1234567891011121314151617181920212223242526
#include <iostream> int main() { // try to change the value int menu_number = 1; switch (menu_number) { case 1: std::cout << "Pizza" << std::endl; break; case 2: std::cout << "Burger with fries" << std::endl; break; case 3: std::cout << "Pasta with meatballs" << std::endl; break; default: std::cout << "We don`t have this in our menu" << std::endl; break; } }

Ja, dit kunt u bereiken met een eenvoudige if-instructie, en het zou er ongeveer zo uitzien:

main.cpp

main.cpp

copy
123456789101112131415161718192021222324
#include <iostream> int main() { // try to change the value int menu_number = 1; if (menu_number == 1) { std::cout << "Pizza" << std::endl; } else if (menu_number == 2) { std::cout << "Burger with fries" << std::endl; } else if (menu_number == 3) { std::cout << "Pasta with meatballs" << std::endl; } else { std::cout << "We don`t have this in our menu" << std::endl; } }

Het zal op dezelfde manier en zoals verwacht werken, maar het is over het algemeen beter om een switch-statement te gebruiken omdat dit een duidelijkere, beter leesbare en, het belangrijkste, makkelijker te onderhouden en schaalbare manier biedt om dit soort controleflow te beheren.

Het weglaten van het break-trefwoord in een switch-statement kan leiden tot onverwacht programmagedrag, omdat de code doorgaat met uitvoeren in de volgende cases. Het opzettelijk weglaten van break kan echter worden gebruikt om meerdere cases binnen hetzelfde codeblok te beheren. Deze aanpak, bekend als fall-through, maakt het mogelijk om gerelateerde cases samen te behandelen.

main.cpp

main.cpp

copy
12345678910111213141516171819202122
#include <iostream> int main() { // change the number and look how it affect the output int number = 3; switch (number) { case 1: std::cout << '1' << std::endl; case 2: std::cout << '2' << std::endl; case 3: std::cout << '3' << std::endl; case 4: std::cout << '4' << std::endl; case 5: std::cout << '5' << std::endl; break; } }
Taak

Swipe to start coding

U bouwt een wekelijkse plannersysteem dat de naam van de dag retourneert op basis van het nummer (1 voor maandag, 2 voor dinsdag, enz.).

  1. Gebruik binnen de functie getDayName een switch-instructie op dayNumber:
    • Wijs voor elk geval van 1 tot en met 7 de bijbehorende dagnaam ("Monday", "Tuesday", ..., "Sunday") toe aan de variabele dayName.
    • Gebruik de break-instructie na elk geval om doorschuiven te voorkomen.
    • Gebruik een default-geval om "Invalid day" toe te wijzen als de invoer niet tussen 1 en 7 ligt.
  2. Retourneer de waarde van dayName vanuit de functie.

Voorbeeld

getDayName(1)"Monday"
getDayName(5)"Friday"
getDayName(9)"Invalid day number"

Oplossing

solution.cpp

solution.cpp

Switch to desktopSchakel over naar desktop voor praktijkervaringGa verder vanaf waar je bent met een van de onderstaande opties
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 1. Hoofdstuk 6
single

single

some-alt