Control Flow
If and Else
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
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;
}
score ← 82, grade ← (empty)
4int main() {5 int score→ 82 = 82; //@score=59, 956 std::string grade→ (empty) = "";grade ← pass
9 grade = "A";10} else if (score82 >= 70) {11 grade→ pass = "pass";12} else {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
score ← 59, grade ← (empty)
4int main() {5 int score→ 59 = 59;6 std::string grade→ (empty) = "";grade ← retry
11 grade = "pass";12} else {13 grade→ retry = "retry";14}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
score ← 95, grade ← (empty)
4int main() {5 int score→ 95 = 95;6 std::string grade→ (empty) = "";grade ← A
8if (score95 >= 90) {9 grade→ A = "A";10} else if (score >= 70) {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
scorestarts at82.- The first test,
score >= 90, is false. - The
else iftest,score >= 70, is true. - 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