Switch-instructie
De switch-instructie is ook een van de controle-structuren die het nemen van beslissingen in je 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 om te werken met numerieke waarden, zoals gehele getallen (int) en karakters (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 zou kunnen overeenkomen; -
De
break-instructie wordt gebruikt om het switch-blok te verlaten nadat de code voor een bepaald geval 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 is 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 kan worden bereikt 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
Je bouwt een wekelijkse plannersysteem dat de naam van de dag retourneert op basis van het nummer (1 voor Monday, 2 voor Tuesday, enzovoort).
- Gebruik binnen de functie
getDayNameeenswitch-statement opdayNumber:- Wijs voor elk geval van
1tot en met7de bijbehorende dagnaam ("Monday","Tuesday", ...,"Sunday") toe aan de variabeledayName. - Gebruik de
break-statement 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.
Oplossing
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.
Awesome!
Completion rate improved to 7.69
Switch-instructie
Veeg om het menu te tonen
De switch-instructie is ook een van de controle-structuren die het nemen van beslissingen in je 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 om te werken met numerieke waarden, zoals gehele getallen (int) en karakters (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 zou kunnen overeenkomen; -
De
break-instructie wordt gebruikt om het switch-blok te verlaten nadat de code voor een bepaald geval 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 is 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 kan worden bereikt 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
Je bouwt een wekelijkse plannersysteem dat de naam van de dag retourneert op basis van het nummer (1 voor Monday, 2 voor Tuesday, enzovoort).
- Gebruik binnen de functie
getDayNameeenswitch-statement opdayNumber:- Wijs voor elk geval van
1tot en met7de bijbehorende dagnaam ("Monday","Tuesday", ...,"Sunday") toe aan de variabeledayName. - Gebruik de
break-statement 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.
Oplossing
Bedankt voor je feedback!
single