CHAR05分支结构程序

上传人:M****1 文档编号:457408139 上传时间:2022-11-16 格式:DOC 页数:12 大小:175.50KB
返回 下载 相关 举报
CHAR05分支结构程序_第1页
第1页 / 共12页
CHAR05分支结构程序_第2页
第2页 / 共12页
CHAR05分支结构程序_第3页
第3页 / 共12页
CHAR05分支结构程序_第4页
第4页 / 共12页
CHAR05分支结构程序_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《CHAR05分支结构程序》由会员分享,可在线阅读,更多相关《CHAR05分支结构程序(12页珍藏版)》请在金锄头文库上搜索。

1、靳润昭 C语言教程讲义 2001年2月17日5 分支结构程序15.1关系运算符和表达式15.1.1 关系运算符及其优先次序15.1.2关系表达式15.2逻辑运算符和表达式25.2.1逻辑运算符极其优先次序25.2.2逻辑运算的值35.2.3逻辑表达式35.3if语句45.3.1if语句的三种形式45.3.2if语句的嵌套75.3.3条件运算符和条件表达式95.4switch语句105.5程序举例115 分支结构程序5.1 关系运算符和表达式在程序中经常需要比较两个量的大小关系,以决定程序下一步的工作。比较两个量的运算符称为关系运算符。 5.1.1 关系运算符及其优先次序在语言中有以下关系运算符

2、:1) 小于2) 大于4) = 大于或等于5) = 等于6) != 不等于关系运算符都是双目运算符,其结合性均为左结合。关系运算符的优先级低于算术运算符,高于赋值运算符。 在六个关系运算符中,,=的优先级相同,高于=和!=,=和!=的优先级相同。5.1.2 关系表达式关系表达式的一般形式为: 表达式 关系运算符 表达式例如:a+bc-dx3/2a+1(bc)a!=(c=d)等。关系表达式的值是真”和“假”,用“1”和“0”表示。如: 50的值为“真”,即为1。(a=3)(b=5)由于35不成立,故其值为假,即为0。【例5.1】main() char c=k; int i=1,j=2,k=3;

3、float x=3e+5,y=0.85; printf(%d,%dn,a+5=k+1); printf(%d,%dn,1j5,x-5.25b & cd 等价于 (ab)&(cd) !b=c|da 等价于 (!b)=c)|(dc&x+yc)&(x+y)0 & 42由于50为真,42也为真,相与的结果也为真。2. 或运算|:参与运算的两个量只要有一个为真,结果就为真。 两个量都为假时,结果为假。例如:50|58由于50为真,相或的结果也就为真。3. 非运算!:参与运算量为真时,结果为假;参与运算量为假时,结果为真。例如:!(50)的结果为假。虽然编译在给出逻辑运算值时,以“1”代表“真”,“0 ”

4、代表“假”。 但反过来在判断一个量是为“真”还是为“假”时,以“0”代表“假”,以非“0”的数值作为“真”。例如:由于5和3均为非“0”因此5&3的值为“真”,即为1。又如:5|0的值为“真”,即为1。5.2.3 逻辑表达式逻辑表达式的一般形式为: 表达式 逻辑运算符 表达式其中的表达式可以又是逻辑表达式,从而组成了嵌套的情形。例如: (a&b)&c根据逻辑运算符的左结合性,上式也可写为: a&b&c逻辑表达式的值是式中各种逻辑运算的最后值,以“1”和“0”分别代表“真”和“假”。【例5.2】main() char c=k; int i=1,j=2,k=3; float x=3e+5,y=0.

5、85; printf(%d,%dn,!x*!y,!x); printf(%d,%dn,x|i&j-3,ij&xy); printf(%d,%dn,i=5&c&(j=8),x+y|i+j+k); 本例中!x和!y分别为0,!x*!y也为0,故其输出值为0。由于x为非0,故!x的逻辑值为0。对x| i & j-3式,先计算j-3的值为非0,再求i & j-3的逻辑值为1,故x|i&j-3的逻辑值为 1。对ij&xy式,由于ij的值为1,而xy为0故表达式的值为1,0相与,最后为0,对i=5&c&(j=8)式,由于i=5为假,即值为0,该表达式由两个与运算组成,所以整个表达式的值为0。对于式x+ y

6、|i+j+k由于x+y的值为非0,故整个或表达式的值为1。5.3 if语句用if语句可以构成分支结构。它根据给定的条件进行判断,以决定执行某个分支程序段。语言的if语句有三种基本形式。5.3.1 if语句的三种形式1. 第一种形式为基本形式:if if(表达式) 语句其语义是:如果表达式的值为真,则执行其后的语句, 否则不执行该语句。其过程可表示为下图。【例5.3】main() int a,b,max; printf(n input two numbers: ); scanf(%d%d,&a,&b); max=a; if (maxb) printf(max=%dn,a); else print

7、f(max=%dn,b); 输入两个整数,输出其中的大数。改用if-else语句判别a,b的大小,若a大,则输出a,否则输出b。3. 第三种形式为if-else-if形式前二种形式的if语句一般都用于两个分支的情况。 当有多个分支选择时,可采用if-else-if语句,其一般形式为:if(表达式1) 语句1; else if(表达式2) 语句2; else if(表达式3) 语句3; else if(表达式m) 语句m; else 语句n;其语义是:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。然后跳到整个if语句之外继续执行程序。 如果所有的表达式均为假,则执行语句n。然后继续执行后续程序。 if-else-if语句的执行过程如图33所示。【例5.5】#includestdio.hmain() char c; printf(input a character: ); c=getchar(); if(c=0&c=A&c=a&cb)a+; b+;elsea=0; b=10

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号