内容正文:
4.if语句(讲义)-《C语言程序设计》专题复习讲练测
[考纲要求]
(1)掌握if语句、if-else语句、if语句的嵌套的语法和用法。
(2)掌握使用if语句实现选择结构。
[课时安排]
2课时
[知识梳理]
if 语句通常被称为选择语句或分支语句。它不再局限于顺序结构单一流程,而是用来对给定条件进行判定,根据其判定结果,从两种操作中选择其一。if 语句用于实现分支结构,C 语言提供了两种形式的 if语句。
一、if 语句一般形式
1.格式:if(表达式)语句;
执行过程如图所示。
2.执行过程:执行 if 语句时,先对“表达式”进行求值,如果计算结果非 0(为真),则执行其后的“语句”,否则跳过其后的“语句”。
3.说明:(1)“表达式”的类型可以为任何类型的表达式。
(2)如果在 if 子句中需要多个语句,则应该用大括号“{}”把一组语句括起来,构成复合语句,被看作一条语句。如,if(x<y)x=x+1;和if(x<y){x=x+1;y=y+1;}
(3)if(a=b)和 if(a==b)是不一样的。
二、if.....else 语句
1.格式:
if(表达式 1)语句1;
else语句2;
执行过程如图所示:
[注意]:else 不能独立成为一条语句,它只是 if 语句的一部分,不允许单独出现在程序中,else 必须与if配对,共同组成 if...else 语句。
2.执行过程:
如果“表达式”计算结果值为真,则执行语句 1;否则执行语句 2。其中,“语句 1”和“语句 2”部分可以是简单语句或者复合语句。关于书写风格, 建议使用缩进格式,以便清楚地看出哪些语句的执行依赖于“表达式”的真假。
3.注意:在if 后面的“语句 1”部分和 else 后面的“语句 2”部分如果有几条语句,则应该用花括号“{”将这几条语句括起来,成为二条复合语句。
如:
if(x>y)printf("较大者为:%d",x );
x-x+l;
else
printf(“较大者为:%d”,y);
应该为以下形式:
if(x>y)
{printf(“较大者为:%d”,x);
x++;}
else
printf(“较大者为:%d”,y);
三、语句的嵌套
语句允许用户选择是否执行某操作,if...else 语句允许用户在两个操作中选择其一执行。在实际运用中,可能面对两种以上的选择,把 if...else语句稍加扩展,就能满足要求。
1.其一般形式是:
if(表达式 1)语句1;
else if(表达式 2)语句 2;
else if(表达式 2)语句3;
else (表达式3) 语句 4;
执行过程如图所示。
2.定义:一条 if 语句中可以包含另一条 if 语句称为 if 语句的嵌套。
3.注意:在嵌套的 if 语句中,else 与其上最近的尚未配对的if 配对,除非用花括号来改变。
四、条件表达式
1.条件表达式的一般形式为:表达式 1? 表达式2:表达式 3
条件运算符是三目运算符,由“?”和“:”组成,要求有 3个运算对象
2.执行过程如图所示。
3.条件表达式的值
若表达式 1的结果为真(或非 0),则条件表达式的值等于表达式 2的值;若表达式 1的结为假(或为 0),则结果为表达式 3 的值。例如:m=(x>y)?x:y;表示将x和y中较大的值赋给 m。若 x>y,则将x的值赋给变量 m,否则将y的值赋给变量 m。
4.优先级
(1)条件运算符的优先级高于赋值运算符,低于关系运算符和算术运算符。看下面的例子,x>y? x:y-1 等价于 (x>y)? x:(y-1)
(2)条件运算符的结合性是“右结合性”,即自右向左,可理解为先从右边开始加括号。
[真题练讲]
1.(2017重庆高职对口统一考试)在C语言中,语句if( a =2)和语句if( a ==2)是等价的。( )
【答案】错误
【解析】本题考查C语言的if语句。if语句中表达式a =2是赋值语句,而a ==2是关系运算。
2.(2017重庆高职对口统一考试)在C语言中,若int x =5,y =3 ,z;则执行语句if(x >y) z=x; else z = y ;后,z的值是( )
【答案】5
【解析】本题考查C语言的if-else语句。x>y为真,则执行if分支,z的值为5.
3.(2016重庆高职对口统一考试)在C语言中,执行程序段int a =5 , b=4; if(a++>5) printf("%d" ,a+b) ;else printf("%d" ,a-b);的结果是( )
【答案】2
【解析】本题考查C语言的if-else语句。a++>5, 先使用当前a的值,大于5不成立,为假,说明应该执行else分支,使用完,a自增变为6.