A switch statement compares one value against several case labels.

switch Use `switch` when one value chooses among several named cases.

Switch Statement

option
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;
}
  1. option ← 2, action ← (empty)

    4int main() {5    int option→ 2 = 2; //@option=1, 3, 96    std::string action→ (empty) = "";
  2. switch (option)

    8switch (option2) {9    case 1:
  3. action ← update

    11    break;12case 2:13    action→ update = "update";14    break;
  4. action = "update";

    12case 2:13    action = "update";14    break;15case 3:
  5. 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
  1. option ← 1, action ← (empty)

    4int main() {5    int option→ 1 = 1;6    std::string action→ (empty) = "";
  2. switch (option)

    8switch (option1) {9    case 1:
  3. action ← create

    8switch (option) {9    case 1:10        action→ create = "create";11        break;
  4. action = "create";

    9case 1:10    action = "create";11    break;12case 2:
  5. 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
  1. option ← 3, action ← (empty)

    4int main() {5    int option→ 3 = 3;6    std::string action→ (empty) = "";
  2. switch (option)

    8switch (option3) {9    case 1:
  3. action ← delete

    14    break;15case 3:16    action→ delete = "delete";17    break;
  4. action = "delete";

    15case 3:16    action = "delete";17    break;18default:
  5. 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
  1. option ← 9, action ← (empty)

    4int main() {5    int option→ 9 = 9;6    std::string action→ (empty) = "";
  2. switch (option)

    8switch (option9) {9    case 1:
  3. action ← help

    17    break;18default:19    action→ help = "help";20    break;
  4. action = "help";

    18    default:19        action = "help";20        break;21}
  5. 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

  1. option starts at 2.
  2. switch checks the case labels.
  3. case 2 matches.
  4. 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