Switch-instructie
De switch-instructie is ook een van de controlestructuren 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
12345678910111213141516switch (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
caseop basis van de waarde van de expressie; -
Elke
casevertegenwoordigt 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
defaultis 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
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
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
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; } }
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.).
- Gebruik binnen de functie
getDayNameeenswitch-instructie opdayNumber:- Wijs voor elk geval van
1tot en met7de bijbehorende dagnaam ("Monday","Tuesday", ...,"Sunday") toe aan de variabeledayName. - 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.
- Wijs voor elk geval van
- Retourneer de waarde van
dayNamevanuit de functie.
Voorbeeld
getDayName(1) → "Monday"
getDayName(5) → "Friday"
getDayName(9) → "Invalid day number"
Oplossing
solution.cpp
Bedankt voor je feedback!
single
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
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?
Awesome!
Completion rate improved to 7.69
Switch-instructie
Veeg om het menu te tonen
De switch-instructie is ook een van de controlestructuren 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
12345678910111213141516switch (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
caseop basis van de waarde van de expressie; -
Elke
casevertegenwoordigt 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
defaultis 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
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
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
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; } }
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.).
- Gebruik binnen de functie
getDayNameeenswitch-instructie opdayNumber:- Wijs voor elk geval van
1tot en met7de bijbehorende dagnaam ("Monday","Tuesday", ...,"Sunday") toe aan de variabeledayName. - 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.
- Wijs voor elk geval van
- Retourneer de waarde van
dayNamevanuit de functie.
Voorbeeld
getDayName(1) → "Monday"
getDayName(5) → "Friday"
getDayName(9) → "Invalid day number"
Oplossing
solution.cpp
Bedankt voor je feedback!
single