四、程序结构和控制语句
-
C语言汇总程序结构的分类
- 顺序结构
- 分支结构
- 循环结构
-
C控制语句
条件判断语句
-
if语句
1.
if(表达式) 语句2
若表达式的值非0,则代表真,执行语句2;表达式的值为0的话,则代表假,不执行语句2。
2.
if(表达式) 语句1 else 语句2
这是一种双分支结构,若判断表达式为真,则执行语句1否则执行语句2。
注意:
语句必须以;结尾
3.
if(表达式1) 语句1
else if(表达式2) 语句2
else if(表达式3) 语句3
else if(表达式4) 语句4
....
else if(表达式n) 语句n
-
if语句的嵌套使用
嵌套:
if() { if() 语句1; else 语句2; } else { if() 语句3 else 语句4 }
注意:复合语句后面不需要加;
-
switch语句
switch(表达式) { case 常量表达式1:语句序列1; case 常量表达式2:语句序列2; case 常量表达式3:语句序列3; ... case 常量表达式n:语句序列n; default:语句n+1; }
switch后面的表达式必须为整型值或字符型值。
- 这里的case标签并没有将语句列表划分为几个部分,他只是确定了语句执行的入口点
- switch的执行过程为:首先计算表达式的值,然后跳到case标签值与表达式值相等的地方开始往下执行,如果没有跳转指令(break)的话会一直执行到switch语句的最后。
- 如果需要程序在执行完入库点的语句序列后直接跳出switch语句,就需要在语句序列后加上
break
语句。 - default分支看似特殊,其实和普通标号一样,如果放在中间且没有加break,就会一直执行,直到看到break。
循环语句
-
while
while(表达式) { 循环体语句; }
在执行while循环语句时,先判断表达式的值,再执行循环体中的内容
-
do-while
do { 循环体语句; }while(表达式);
在执行do-while循环语句时,先执行循环体的内容,再判断while表达式中的值。
勿忘while括号后面的";"
-
for循环语句
for(表达式1;表达式2;表达式3) { 循环体语句; }
- 先执行表达式1,在判断表达式2;执行循环体语句;执性表达式3;判断表达式2;执行语句…
- 表达式1:常用于给循环变量赋初值,一般是赋值表达式。可省略,即在外部给表达式赋初值。
- 表达式2:通常是循环条件
- 表达式3:通常用来改变循环变量的值。
for括号中的三个表达式都可以是逗号表达式,即每个表达式可有多个表达式组成,3个表达式都是任选项
- 三个语句都可以省略,但是;不能省略
- 如;for(;;)则变成死循环。循环体可以为空语句。
- for可与while,do-while相互嵌套
-
goto 语句
goto语句也称为无条件转移语句;
goto 语句标号; ... 语句标号: 语句体;
- 语句标号去表示语句的作用,放在某一行的前面,括号后面加(😃。
- goto语句的语义是执行语句标号所标识的语句。可以与条件判断语句配合使用,来构成循环。
- goto语句常用于跳出多层循环,出错是调回出错处理的地方。
- 程序中过多使用goto语句,很容易造成程序混乱。
转向语句分析:
-
break
break语句在前面的switch语句中已经出现过,只能在switch语句中或循环体中。
其作用是跳出本层循环去执行后面的语句
-
continue
continue只能用在循环体中
其功能是结束本次循环,转入下一次循环条件的判断与执行
-
goto
goto语句也叫无条件转移语句,用于改编程序的流向。
除了用来构造循环体外还能用来实现条件转移和跳出循环体的功能
-