顺序结构
分支语句
if语句
使用if语句的注意事项:
- if语句的判断条件,只要计算出来的结果是非0,那么条件就成立。计算的方式可以是函数调用或是任何运算符所构成的表达式,以下方式都是合理的:
- if(( 3, 4)) if( a = 3) if(printf(“hello”)) if(&a)
- 在写注意判断条件中赋值与相等的区别,赋值是“=”,相等是"=="。 谨慎的做法是,在相等判断的时候,把常量写在前面,形如“3 == a”,这样,即使错写成“3 = a”,编译器也能检查出错误,避免程序出现逻辑错误。
- if与else的配对原则:从最内层开始,else总是与它上面最接近的、未曾配对的if匹配。
- 避免if与else配对错位的最佳方法是使用括号和缩进,良好的编程网络是即使if或者else的语句只有一条,也要另起一行加上括号和缩进。
switch语句
switch(表达式1) { case 常量表达式1: 语句1; break; case 常量表达式2: 语句2; break; ...... case 常量表达式n: 语句n; break; default: 语句n+1; break; }
使用switch语句的注意事项:
- switch后面的表达式计算结果必须为int型或char型,浮点型与地址类型及其他构造类型都是不合法的。
- case后面必须为可以精确进行比较的int型或char型常量或常量表达式,使用变量表达式是不合法的。
- case后面的常量表达式必须的互不相同,否则编译无法通过。
- 每个case的结尾绝对不要忘了加break,否则将导致多个分支重叠(除非有意使多个分支重叠)。
- case与default的出现顺序不影响执行结果。
- 必须使用default分支,即便程序不需要default,也应该保留default语句并加上break。保留的目标是让程序来解释,编程者已经考虑到了default情况并认为可以不加处理,从而避免让人误以为你忘了default处理。
if语句与switch语句的比较
理论上,使用switch的语句都可以用if语句来改写,但是,在纯粹进行数字或字符比较且比较的分支较多时,使用switch语句的代码逻辑性和可读性都要优于if语句,自行体会。
流程图
除了用程序直接来表现程序流程之外,我们还可以用流程图的形式来表现程序的流程,常用的流程表示有以下这么几种。
使用流程图表示求一个数的绝对值的过程:
使用流程表图表示求1+2+3+…+100: