第四章节:表达式和基本语句
4.1 运算符的优先级
【规则 4-1-1】如果代码行中的运算符比较多,用括号确定表达式的操作顺序,避免使用默认的优先级。
4.2 复合表达式(如 a = b = c = 0 这样的表达式)
【规则 4-2-1】不要编写太复杂的复合表达式。
【规则 4-2-2】不要有多用途的复合表达式。
【规则 4-2-3】不要把程序中的复合表达式与“真正的数学表达式”混淆。
4.3 if 语句
【规则 4-3-1】布尔变量与零值比较:不可将布尔变量直接与 TRUE、FALSE 或者 1、0 进行比较。
【规则 4-3-2】整型变量与零值比较:应当将整型变量用“==”或“!=”直接与 0 比较
【规则 4-3-3】浮点变量与零值比较:不可将浮点变量用“==”或“!=”与任何数字比较(应该设法转化成“>=”或“<=”形式)。
【规则 4-3-4】指针变量与零值比较:应当将指针变量用“==”或“!=”与 NULL 比较。
4.4 循环语句的效率
【建议 4-4-1】在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少 CPU 跨切循环层的次数。
【建议 4-4-2】如果循环体内存在逻辑判断,并且循环次数很大,宜将逻辑判断移到循环体的外面。
4.5 for 语句的循环控制变量
【规则 4-5-1】不可在 for 循环体内修改循环变量,防止 for 循环失去控制。
【建议 4-5-1】建议 for 语句的循环控制变量的取值采用“半开半闭区间”写法。(ps:如果需要打印1-100的数字用”全闭区间“更直观)
4.6 switch 语句
【规则 4-6-1】每个 case 语句的结尾不要忘了加 break,否则将导致多个分支重叠(除非有意使多个分支重叠)。
【规则 4-6-2】不要忘记最后那个 default 分支。即使程序真的不需要 default 处理,也应该保留语句 default : break; 这样做并非多此一举,而是为了防止别人误以为你忘了 default 处理。