美文网首页程序员
第四章 表达式与语句

第四章 表达式与语句

作者: Fantasy_Link | 来源:发表于2018-03-16 11:22 被阅读0次

4.1 运算符的优先级

B56AE4A8A8854692A95364AA3764AA5C.jpg

规则4-1-1 如果代码行中的运算符比较多,用括号确定表达式的操作顺序,避免使用默认的优先级。

4.2 复合表达式

规则4-2-1 不要编写太复杂的复合表达式。

规则4-2-2 不要有多用途的复合表达式。

规则4-2-3 不要把程序中的复合表达式与“真正的数学表达式”混淆。

4.3 if 语句

4.3.1 布尔变量与零值比较

规则4-3-1不可将布尔变量直接与TRUE、FALSE或者1、0进行比较。

假设布尔变量名字为flag,它与零值比较的标准if语句如下:

    if (flag)    // 表示flag为真
    if (!flag)    // 表示flag为假    

注:TRUE的值究竟是什么并没有统一的标准。根据布尔类型的定义,零值为“假”(记为 FALSE),任何非零值都是“真”(记为TRUE)。

4.3.2 整型变量与零值比较

规则4-3-2应当将整型变量用“==”或“!=”直接与 0 比较。

if (value == 0)

4.3.3 浮点变量与零值比较

规则4-3-3不可将浮点变量用“==”或“!=”与任何数字比较。

if ((x >= -EPSION) && (x <= EPSION))    // 其中EPSION是允许的误差(即精度)。

4.3.4 指针变量与零值比较

规则4-3-4应当将指针变量用“==”或“!=”与 NULL 比较。

4.3.5 对 if语句的补充说明

将if (p == NULL)误写成if (p = NULL),而有意把p和NULL颠倒。编译器认为if (p = NULL)是合法的,但是会指出if (NULL = p)是错误的,因为NULL不能被赋值。

程序中有时会遇到 if/else/return 的组合,应该将如下不良风格的程序

if (condition) 
    return x; 

return y; 

改写为

if (condition)
{ 
    return x;
} 
else 
{
    return y; 
} 

或者改写成更加简练的

return (condition ? x : y); 

4.4 循环语句的效率

提高循环体效率的基本办法是降低循环体的复杂性。 

建议4-4-1 在多重循环中,如果有可能,应当将最长的循环放在最内层,最短的循环放在最外层,以减少 CPU 跨切循环层的次数。

建议4-4-2 如果循环体内存在逻辑判断,并且循环次数很大,宜将逻辑判断移到循环体的外面。示例 4-4(c)的程序比示例 4-4(d)多执行了 N-1 次逻辑判断。并且由于前者老要进行逻辑判断,打断了循环“流水线”作业,使得编译器不能对循环进行优化处理,降低了效率。如果 N 非常大,最好采用示例 4-4(d)的写法,可以提高效率。如果 N 非常小,两者效率差别并不明显,采用示例 4-4(c)的写法比较好,因为程序更加简洁。

B445E54215CD401B93E4CA6EB28E8301.jpg

4.5 for 语句的循环控制变量

规则4-5-1不可在for 循环体内修改循环变量,防止for 循环失去控制。

建议4-5-1 建议 for 语句的循环控制变量的取值采用“半开半闭区间”写法。

4.6 switch语句

switch是多分支选择语句。

规则4-6-1 每个 case 语句的结尾不要忘了加 break,否则将导致多个分支重叠(除非有意使多个分支重叠)。

规则4-6-2 不要忘记最后那个 default 分支。即使程序真的不需要 default 处理,也应该保留语句 default : break; 这样做并非多此一举,而是为了防止别人误以为你忘了 default 处理。

4.7 goto语句

跳出多重循环体中。

相关文章

  • JS语法总结

    Get Started • 表达式、语句、标识符• if … else语句• while、for循环语句 表达式与...

  • JS 的基本语法简介

    1 表达式 与 语句 1.1 表达式 与 语句区别 表达式一般都会有值,语句可能有可能没有. 语句一般会改变环...

  • if,switch语句的选择结构

    一. if语句 if(表达式)语句 if(表达式)语句,else语句 if(表达式)语句,else if(表达式)...

  • 表达式与语句

    js 表达式与语句

  • JavaScript入门——语句和表达式(二)

    语句与表达式的区别是,表达式会产生一个值,语句不会。例如 var a = 1 + 1 是语句,右边是表达式。 控制...

  • 基本语法

    语句与表达式 表达式会产生一个值,而语句不会。 js 中有两种像语句的表达式 对象字面量 该语句即可认为是一个创建...

  • C语言11月25日第三课

    1,if语句 ①if(表达式) ②if(表达式) 语句1 else 语句2 ③if(表达式...

  • while进行循环

    结构: while(while语句的条件表达式) { while语句的程序块 } while语句的语法与if语句的...

  • js流程控制语句

    表达式与语句 a+b是表达式,a+b;是语句 if switch(常用) switch和if关系密切,switch...

  • 循环

    while循环语句 while(条件表达式) {执行语句} for循环语句 for(表达式1;表达式2;表达式3)...

网友评论

    本文标题:第四章 表达式与语句

    本文链接:https://www.haomeiwen.com/subject/ipskqftx.html