目录
在 C++ 中,判断语句(或称分支语句)用于根据不同的条件执行不同的代码块。这些语句允许程序根据特定条件作出决策,从而实现更复杂的逻辑。C++ 支持几种主要的判断语句,包括 if
语句、switch
语句以及 ternary
条件运算符。
1. if
语句
if
语句是最基本的判断语句,用于根据一个条件的真假来选择执行不同的代码块。
语法:
cpp
深色版本
if (条件) {
// 当条件为真时执行的代码块
} else if (另一个条件) {
// 当另一个条件为真时执行的代码块
} else {
// 当所有前面的条件均为假时执行的代码块
}
示例:
cpp
深色版本
#include <iostream>
using namespace std;
int main() {
int score = 85;
if (score >= 90) {
cout << "Grade: A" << endl;
} else if (score >= 80) {
cout << "Grade: B" << endl;
} else if (score >= 70) {
cout << "Grade: C" << endl;
} else {
cout << "Grade: F" << endl;
}
return 0;
}
2. switch
语句
switch
语句用于基于不同的条件执行不同的代码块。它通常用于多个互斥条件的情况。
语法:
cpp
深色版本
switch (表达式) {
case 常量表达式1:
// 当表达式等于常量表达式1时执行的代码块
break;
case 常量表达式2:
// 当表达式等于常量表达式2时执行的代码块
break;
...
default:
// 当没有匹配的 case 时执行的代码块
}
示例:
cpp
深色版本
#include <iostream>
using namespace std;
int main() {
int dayOfWeek = 3;
switch (dayOfWeek) {
case 1:
cout << "Monday" << endl;
break;
case 2:
cout << "Tuesday" << endl;
break;
case 3:
cout << "Wednesday" << endl;
break;
case 4:
cout << "Thursday" << endl;
break;
case 5:
cout << "Friday" << endl;
break;
case 6:
cout << "Saturday" << endl;
break;
case 7:
cout << "Sunday" << endl;
break;
default:
cout << "Invalid day" << endl;
}
return 0;
}
3. 条件运算符(Ternary Operator)
条件运算符(也称为三元运算符)提供了一个简短的方式来根据条件选择不同的值。
语法:
cpp
深色版本
(条件) ? 表达式1 : 表达式2;
示例:
cpp
深色版本
#include <iostream>
using namespace std;
int main() {
int a = 10;
int b = 20;
int result = (a > b) ? a : b;
cout << "Max: " << result << endl;
return 0;
}
4. 嵌套的 if
语句
if
语句可以嵌套使用,即在一个 if
语句的代码块中又包含另一个 if
语句。
示例:
cpp
深色版本
#include <iostream>
using namespace std;
int main() {
int age = 20;
bool hasLicense = true;
if (age >= 16) {
if (hasLicense) {
cout << "Can drive legally." << endl;
} else {
cout << "Needs a license to drive legally." << endl;
}
} else {
cout << "Too young to drive." << endl;
}
return 0;
}
5. 使用逻辑运算符
逻辑运算符(&&
和 ||
)可以用于组合多个条件。
示例:
cpp
深色版本
#include <iostream>
using namespace std;
int main() {
int age = 20;
bool hasLicense = true;
if (age >= 16 && hasLicense) {
cout << "Can drive legally." << endl;
} else if (age >= 16 && !hasLicense) {
cout << "Needs a license to drive legally." << endl;
} else {
cout << "Too young to drive." << endl;
}
return 0;
}
6. 使用 assert
断言
assert
用于在开发过程中进行调试,确保某个条件为真。如果条件为假,则程序会终止并输出错误信息。
示例:
cpp
深色版本
#include <cassert>
int main() {
int x = 10;
assert(x > 0); // 如果 x 不大于 0,则程序会终止
cout << "Passed assert check." << endl;
return 0;
}
7. 使用 try-catch
异常处理
异常处理机制也可以用于条件判断,特别是用于检测和处理程序运行中的错误情况。
示例:
cpp
深色版本
#include <iostream>
#include <stdexcept>
using namespace std;
int main() {
try {
int divisor = 0;
if (divisor == 0) {
throw runtime_error("Cannot divide by zero.");
}
int result = 10 / divisor;
cout << "Result: " << result << endl;
} catch (const exception& e) {
cout << "Caught exception: " << e.what() << endl;
}
return 0;
}
总结
判断语句是 C++ 中非常重要的控制结构,用于根据不同的条件执行不同的代码块。通过合理使用 if
语句、switch
语句、条件运算符以及其他控制结构,你可以实现复杂的逻辑判断。随着编程经验的积累,你会更加熟练地运用这些判断语句来优化你的代码结构。理解并掌握这些判断语句,可以帮助你在编写程序时更加得心应手。