2.2 条件分支
条件分支让程序能根据不同情况选择不同路径。C++ 使用 if、else if 和 else 表示分支,并用大括号 {} 把属于某个分支的语句组织成代码块。
if
if 语句会检查一个条件。如果条件为真,C++ 执行大括号里的代码;如果条件为假,就跳过这个代码块。
cpp
int age;
std::cin >> age;
if (age > 0 && age < 18) {
std::cout << "Minor" << std::endl;
}一次可能的运行:
text
17
Minor在 C++ 中,属于 if 的语句放在大括号 {} 中。即使只有一行,也建议写上大括号,避免后续代码变多时出现错误。
正在加载概念检查...
if-else
if-else 用来表示二选一:条件为真时执行 if 代码块,否则执行 else 代码块。
下面是闰年示例。一个年份是闰年,需要满足下面条件之一:
- 能被 4 整除,并且不能被 100 整除。
- 或者能被 400 整除。
cpp
int year;
std::cin >> year;
bool is_leap_year = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
if (is_leap_year) {
std::cout << "Leap year" << std::endl;
} else {
std::cout << "Common year" << std::endl;
}一次可能的运行:
text
2020
Leap year把复杂条件保存到 is_leap_year 中,会让 if 那一行更容易阅读。在真实程序里,这通常比直接把长条件塞进 if 更容易维护。
正在加载概念检查...
if-else if-else
当情况不止两种时,可以使用 if-else if-else。C++ 会从上到下检查条件,执行第一个为真的分支,然后跳过后面的分支。
cpp
char c;
std::cin >> c;
if (c >= 'a' && c <= 'z') {
std::cout << "Lowercase" << std::endl;
} else if (c >= 'A' && c <= 'Z') {
std::cout << "Uppercase" << std::endl;
} else if (c >= '0' && c <= '9') {
std::cout << "Digit" << std::endl;
} else {
std::cout << "Special character" << std::endl;
}一次可能的运行:
text
T
Uppercaseelse if 的顺序很重要。更具体或更优先的条件应该放在前面,else 则作为兜底情况。
正在加载交互实验...
正在加载概念检查...
正在加载本节练习...