第4章 语句及控制结构
4.1 C语言语句
4.2 简单语句
4.3 输出/输入功能语句
4.4 条件(分支)语句
4.4.1 if语句
1. if语句的一般形式:
if(<条件表达式>)
{<语句1>}
else
{<语句2>}
1) 语句2可以没有,这时if语句结构为单路结构 ,若两个分支都有则称为双路结构。
2. if语句的嵌套:
1) 嵌套的if语句:if(<条件表达式1>)<语句1> else if(<条件表达式2>)<语句2>...else<语句n>
2) 嵌套if语句应注意的问题:
(1) if和else应配对出现,每一个else和它最近且尚未匹配的if相匹配。
(2) 应尽量把求值为真的概率最大的条件放在前面优先判断,从而提高if语句的运行效率。
3. if语句中条件表达式的灵活设置
1) 用一个数值表示条件。
2) 将赋值运算和条件运算结合起来。
3) 用复合的逻辑表达式表示条件,if(70<score<80)的表示方法错误。
4. if语句和条件表达式的关系
4.4.2 switch语句
1. switch语句的一般形式:
switch(<表达式>)
{
case(<常量1>):<语句1>;(break);
case(<常量2>):<语句2> ;(break);
...
case(<常量n>):<语句n> ;(break);
default:<语句n+1>
}
2. 要注意的问题:
1) 语句后加上break,则执行完语句后,会跳出switch语句,否则继续往下执行。执行完default后语句后,会自动跳出switch语句。
2) 各个case分支的条件常量必须不一样。
3) 多个常量共同拥有一个语句的情况:
case 1:
case 2:
case 3:<语句>
4.5 循环语句
4.5.1 for语句
1. for循环语句的一般形式:
for(<表达式1>;<表达式2>;<表达式3>)
{<语句>}
for(i=1;i<=1000;i=i+2)
1) 表达式1:循环初始表达式,i为循环控制变量,1为控制变量初值。
2) 表达式2:条件表达式,若成立,则执行循环内语句,反之,则跳出循环语句,1000为控制变量终值。
3) 表达式3:控制变量递增表达式
4.5.2 while语句
1. while语句的一般形式:
while(<条件表达式>)
{
<语句>
}
2. 需要注意的问题
1) while相对与for而言,只是将循环初始表达式,放在了循环之前,将循环变量递增表达式放在了循环语句之中。
4.5.3 do…while语句
1. do...while语句的一般格式:
do
{
<语句>
}while(<条件表达式>)
2. 需要注意的问题:
1) do...while语句相对于while语句而言,先执行一次语句,再执行条件表达式。
4.5.4 循环语句的嵌套
4.6 转向语句
4.6.1 break语句
1. break语句的作用是跳出分支(用在switch语句中),和跳出循环,break在循环语句中时,只能跳出它所在的那层循环,不能跳出外层循环。
4.6.2 continue语句
1. continue语句用在循环语句中,对于do...while和while语句,continue的作用是跳到所在循环层的条件表达式中;对与for语句,continue的作用是跳到所在循环层递增表达式中。
4.6.3 goto语句
1. goto语句的一般形式:goto <标号标识符>,其作用是把控制转到标号标识符所标志的地方。
2. goto语句主要在一下两个地方使用:
1) 和if语句一起构成循环结构。
2) 从嵌套的循环结构体跳到外层,而break语句只能跳出一层。
4.6.4 return语句
1. return语句的一般形式:return(<表达式>),主要用在函数中,以结束函数的执行,把控制转向函数调用点,并返回一个值。若用在主函数main中,则结束程序的运行。
2. 注意的问题:
1) return也可以不返回值,直接返回到函数调用点,或结束主函数。
2) 函数中也可没有return,执行完函数语句,直接返回到函数调用点,或结束主函数。
3) return(<表达式>),括号“()”可以省略。