第4讲C语言选择结构PPT课件

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

=0
statement1
else
statement1
statement2
statement2
执行过程:
例:if (x>y) max=x; else max=y;
9
➢ 形式三: 格式: 执行过程:
if ( expr1 ) else if (expr2 ) else if (expr3 )
statement1 statement2 statement3
3
关系运算注意:
➢ 应避免对实数作相等或不等的判断
如:1.0/3.0*3.0==1.0 结果为 0 可改写为:fabs(1.0/3.0*3.0-1.0)<1e-6
➢ 注意区分“=”与“==”
例:int a=0,b=1; if(a=b) printf(“a equal to b”); else printf(“a not equal to b”);
➢ 结合方向:自右向左
取expr2值
如 a>b?a:c>d?c:d a>b?a:(c>d?c:d)
取expr3值
➢ expr1、expr2、expr3类型可不同,表达式值取较高的类型
例 x?‘a’:‘b’ //x=0,表达式值为‘b’; x‡0,表达式值为‘a’ x>y?1:1.5 //x>y ,值为1.0; x<y ,值为1.5
else if(expr3)
if (expr2) else
statement1 statement2
4
逻辑运算符和表达式
逻辑运算符
➢ 种类: !、&&、|| ➢ 逻辑运算真值表
a
b
!a












!b a&&b a||b












➢ C语言中,运算量: 0表示“假”, 非0表示“真”,
运算结果: 0表示“假”, 1表示“真”,
5
优先级
! (2) 高 && (11) || (12) 低
例 a&&b&&c //只在a为真时,才判别b的值;
只在a、b都为真时,才判别 c的值
例 a||b||c
//只在a为假时,才判别b的值;
只在a、b都为假时,才判别 c的值
例 a=1;b=2;c=3;d=4;m=1;n=1;
(m=a>b)&&(n=c>d)
//结果m=0,n=1
7
条件运算符与表达式
一般形式: expr1 ? expr2 : expr3
…...
expr1
=0
[ else
statementn ]
非0
=0 expr2
例:iefl(ssealiafry(>s1a非0l0a00r)y>i8n0d0e)exxip=nr0d3.e4x;=0=.03;
else if (salary>60非0)0index=0.2; seetalltessmeentii1fnd(essxtaa=tel0ma;nrty2>40s0ta)teimnndte3x=0.st1a;temntn
//(a==b)||(x==y) //(!a)||(a>b)
5>3&&2||8<4-!0
(5>3)&&2||(8<(4-(!0))) 值为1
‘c’&&‘d’
值为1
6
逻辑运算的短路特性:逻辑表达式求解时,并非所有的 逻辑运算符都被执行,只是在必须执行下一个逻辑运算 符才能求出表达式的解时,才执行该运算符
8
If语句和用if语句构成的选择结构
if语句(条件选择语句)
if语句的三种形式 ➢ 形式一: 格式:if (expression) statement
=0 expr
非0 statement
执行过程:
➢ 形式二:
例格:式i:f ip(f rx(ei>xnypt)rfe(ss“ion%)d”,x)非; 0 expr
➢ 执行过程 ➢ 功能:相当于条件语句,但不能取代一般if语句
➢➢例例如例条优件先求(pi(((xefaxcxr>l运级(=>%>isnaap0=e==pt>+2:算r?fb0‘ri(ab=|n1i)“b)n1符’)?=ta:?|tf(&3’(f+x1xY(可“&:)|“%<-b’?%:x嵌’|0c1dN=d<?:”%0’套”-,=,a1b‘d)z:);0\’;n))?”,cb->’a0’+?’aA+’:bc:a-bp);r非in0tf(“%dex”,par>1b?a:b=)0;
优先级
! :从右向左 && Байду номын сангаас从左向右 || :从左向右
例 a=4;b=5;
!a
值为0
例:a&a&<b=x && x<值=b为1
// (a<=x) && (x<=b)
a|a|b>b&&x>y 值为1
//(a>b)&&(x>y)
!aa||=b=b||x==y值为1 4&!&a0||||a2>b 值为1
第四章 选择结构
1
关系运算符和表达式
关系运算符
种类:<、<=、==、>=、>、!= 结合方向:自左向右 优先级别:
关系<表达式的值:是逻辑值“真”或“假”,用1和0
表示<= 例>
>=
int
优先级6(高)
a=3,b=2,c=1,d,f;
a>b
== !=
优先级7(低)
//表达式值1
(a>b)==c
10
说明: ➢ if后面的表达式类型任意 ➢ 语句可以是复合语句 ➢ if(x) if(x!=0) ➢ if(!x) if(x==0) 如:if(a==b&&x==y) printf(“a=b,x=y”); if(3) printf(“OK”); 如:iifn(t‘xa;’) printf(“%d”,’a’); scanf(“%d”,&x); if(x) printf(“x!=0”); else printf(“x==0”);
11
if嵌套语句的一般形式:
if (expr1) if (expr2) statement1 else statement2
内嵌if
if (expr1) {
if (expr2) statement1
} else
内嵌if
if (expr1)
statement3
statement1
if (expr1)
//表达式值1
b+c<a
//表达式值0
d=a>b
//d=1
f=a>b>c
//f=0
2
关系运算注意:
例 若a=0; b=0.5; x=0.3; 则 a<=x<=b的值为 0
例 5>2>7>8在C中是允许的, 值为 0
例 int i=1, j=7,a; a=i+(j%4!=0); 则a= 2
例 ‘a’>0 结果为1 ‘A’>100 结果为0
相关文档
最新文档