if语句核心是“满足条件才执行代码”,需注意布尔表达式判定、花括号必要性、else配对逻辑及=与==混淆等陷阱;推荐始终加花括号、避免浮点数直接用==比较、警惕空悬分号。
if 语句是 C++ 中最基础、最常用的条件判断结构,核心就是“满足条件才执行某段代码”。写对 if 不难,但写得清晰、安全、不易出错,需要理解几个关键点:条件
表达式的真假判定规则、花括号的必要性、else 的配对逻辑,以及常见陷阱(比如 = 和 == 混用)。
标准 if 语句由关键字 if、一对圆括号包裹的**布尔表达式**,以及一条或一组语句组成。表达式结果为 true(非零)时执行,false(0)时跳过。
if (x > 0) {
std::cout << "x is positive";
}if (x > 0)
std::cout << "x is positive";
std::cout << "this always runs!"; // 这行不属 if!
处理互斥的多种情况时,用 else if 链接多个条件,最后用 else 捕获所有未覆盖的情形。注意:else 总是和最近的、未配对的 if 匹配。
示例:
if (score >= 90) {
grade = 'A';
} else if (score >= 80) {
grade = 'B';
} else if (score >= 70) {
grade = 'C';
} else {
grade = 'F';
}新手常在 if 条件中栽跟头,以下三点务必留意:
if (x = 5) 是赋值,永远为真(除非 x 是 bool 且被赋 0);应写 if (x == 5);0.1 + 0.2 != 0.3 可能为 true;改用差值比较:if (fabs(a - b) ;
if (x > 0); { ... },分号让 if 后面什么也不做,花括号块变成无条件执行。多个条件组合时,用 &&(与)、||(或)、!(非)连接。注意短路求值特性:
a && b:a 为 false 时,b 根本不计算;a || b:a 为 true 时,b 不计算;if (ptr != nullptr && ptr->value > 0)。嵌套 if 要控制深度,超过两层建议抽成函数或改用 switch(当条件是同一变量的离散整数值时)。
基本上就这些。写好 if 的关键是:条件写清楚、花括号不偷懒、等号看仔细、边界想周全。