Control Flow
Switch Statement
A switch statement compares one value against several case labels.
switch
Use `switch` when one value chooses among several named cases.
Switch Statement
switch_statement.cpp
Replay: real traced execution (multi-file project)
#include <iostream>
#include <string>
int main() {
int option = 2;
std::string action = "";
switch (option) {
case 1:
action = "create";
break;
case 2:
action = "update";
break;
case 3:
action = "delete";
break;
default:
action = "help";
break;
}
std::cout << "option=" << option << std::endl;
std::cout << "action=" << action << std::endl;
return 0;
}
#include <iostream>
#include <string>
int main() {
int option = 1;
std::string action = "";
switch (option) {
case 1:
action = "create";
break;
case 2:
action = "update";
break;
case 3:
action = "delete";
break;
default:
action = "help";
break;
}
std::cout << "option=" << option << std::endl;
std::cout << "action=" << action << std::endl;
return 0;
}
#include <iostream>
#include <string>
int main() {
int option = 3;
std::string action = "";
switch (option) {
case 1:
action = "create";
break;
case 2:
action = "update";
break;
case 3:
action = "delete";
break;
default:
action = "help";
break;
}
std::cout << "option=" << option << std::endl;
std::cout << "action=" << action << std::endl;
return 0;
}
#include <iostream>
#include <string>
int main() {
int option = 9;
std::string action = "";
switch (option) {
case 1:
action = "create";
break;
case 2:
action = "update";
break;
case 3:
action = "delete";
break;
default:
action = "help";
break;
}
std::cout << "option=" << option << std::endl;
std::cout << "action=" << action << std::endl;
return 0;
}
option ← 2, action ← (empty)
4int main() {5 int option→ 2 = 2; //@option=1, 3, 96 std::string action→ (empty) = "";switch (option)
8switch (option2) {9 case 1:action ← update
11 break;12case 2:13 action→ update = "update";14 break;action = "update";
12case 2:13 action = "update";14 break;15case 3:std::cout << "option=" << option << std::endl;
23 std::cout << "option=" << option2 << std::endl;24 std::cout << "action=" << actionupdate << std::endl;25 return 0;26}outputoption=2 action=update
option ← 1, action ← (empty)
4int main() {5 int option→ 1 = 1;6 std::string action→ (empty) = "";switch (option)
8switch (option1) {9 case 1:action ← create
8switch (option) {9 case 1:10 action→ create = "create";11 break;action = "create";
9case 1:10 action = "create";11 break;12case 2:std::cout << "option=" << option << std::endl;
23 std::cout << "option=" << option1 << std::endl;24 std::cout << "action=" << actioncreate << std::endl;25 return 0;26}outputoption=1 action=create
option ← 3, action ← (empty)
4int main() {5 int option→ 3 = 3;6 std::string action→ (empty) = "";switch (option)
8switch (option3) {9 case 1:action ← delete
14 break;15case 3:16 action→ delete = "delete";17 break;action = "delete";
15case 3:16 action = "delete";17 break;18default:std::cout << "option=" << option << std::endl;
23 std::cout << "option=" << option3 << std::endl;24 std::cout << "action=" << actiondelete << std::endl;25 return 0;26}outputoption=3 action=delete
option ← 9, action ← (empty)
4int main() {5 int option→ 9 = 9;6 std::string action→ (empty) = "";switch (option)
8switch (option9) {9 case 1:action ← help
17 break;18default:19 action→ help = "help";20 break;action = "help";
18 default:19 action = "help";20 break;21}std::cout << "option=" << option << std::endl;
23 std::cout << "option=" << option9 << std::endl;24 std::cout << "action=" << actionhelp << std::endl;25 return 0;26}outputoption=9 action=help
Match the Option
optionstarts at2.switchchecks the case labels.case 2matches.- The action becomes
update. | Option | Action | | --- | --- | |1|create| |2|update| |3|delete| | other |help|
Exercise: switch_statement.cpp
Use switch to map menu options to create, update, delete, or help