Use if, else if, and else to choose one path from several possibilities.

else if An `else if` branch is tested only when the earlier `if` branch was false.

If and Else

score
if_else.cpp
Replay: real traced execution (multi-file project)
#include <iostream>
#include <string>

int main() {
    int score = 82;
    std::string grade = "";

    if (score >= 90) {
        grade = "A";
    } else if (score >= 70) {
        grade = "pass";
    } else {
        grade = "retry";
    }

    std::cout << "score=" << score << std::endl;
    std::cout << "grade=" << grade << std::endl;
    return 0;
}
#include <iostream>
#include <string>

int main() {
    int score = 59;
    std::string grade = "";

    if (score >= 90) {
        grade = "A";
    } else if (score >= 70) {
        grade = "pass";
    } else {
        grade = "retry";
    }

    std::cout << "score=" << score << std::endl;
    std::cout << "grade=" << grade << std::endl;
    return 0;
}
#include <iostream>
#include <string>

int main() {
    int score = 95;
    std::string grade = "";

    if (score >= 90) {
        grade = "A";
    } else if (score >= 70) {
        grade = "pass";
    } else {
        grade = "retry";
    }

    std::cout << "score=" << score << std::endl;
    std::cout << "grade=" << grade << std::endl;
    return 0;
}
  1. score ← 82, grade ← (empty)

    4int main() {5    int score→ 82 = 82; //@score=59, 956    std::string grade→ (empty) = "";
  2. grade ← pass

    9    grade = "A";10} else if (score82 >= 70) {11    grade→ pass = "pass";12} else {
  3. std::cout << "score=" << score << std::endl;

    16    std::cout << "score=" << score82 << std::endl;17    std::cout << "grade=" << gradepass << std::endl;18    return 0;19}
    outputscore=82
    grade=pass
  1. score ← 59, grade ← (empty)

    4int main() {5    int score→ 59 = 59;6    std::string grade→ (empty) = "";
  2. grade ← retry

    11    grade = "pass";12} else {13    grade→ retry = "retry";14}
  3. std::cout << "score=" << score << std::endl;

    16    std::cout << "score=" << score59 << std::endl;17    std::cout << "grade=" << graderetry << std::endl;18    return 0;19}
    outputscore=59
    grade=retry
  1. score ← 95, grade ← (empty)

    4int main() {5    int score→ 95 = 95;6    std::string grade→ (empty) = "";
  2. grade ← A

    8if (score95 >= 90) {9    grade→ A = "A";10} else if (score >= 70) {
  3. std::cout << "score=" << score << std::endl;

    16    std::cout << "score=" << score95 << std::endl;17    std::cout << "grade=" << gradeA << std::endl;18    return 0;19}
    outputscore=95
    grade=A

Choose the Grade

  1. score starts at 82.
  2. The first test, score >= 90, is false.
  3. The else if test, score >= 70, is true.
  4. The grade becomes pass. | Score | Branch | Grade | | --- | --- | --- | | 95 | score >= 90 | A | | 82 | score >= 70 | pass | | 59 | else | retry |

Exercise: if_else.cpp

Use if, else if, and else to turn a score into A, pass, or retry