欢迎来到天天文库
浏览记录
ID:50378705
大小:200.00 KB
页数:12页
时间:2020-03-08
《分支结构、关系与逻辑运算.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、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、系运算符及其优先次序在C语言中有以下关系运算符:1)<小于2)<=小于或等于3)>大于4)>=大于或等于5)==等于6)!=不等于关系运算符都是双目运算符,其结合性均为左结合。关系运算符的优先级低于算术运算符,高于赋值运算符。在六个关系运算符中,<,<=,>,>=的优先级相同,高于==和!=,==和!=的优先级相同。5.1.2关系表达式关系表达式的一般形式为:表达式关系运算符表达式例如:a+b>c-dx>3/2‘a’+13、式。因此也允许出现嵌套的情况。例如:a>(b>c)a!=(c==d)等。关系表达式的值是真”和“假”,用“1”和“0”表示。如:5>0的值为“真”,即为1。(a=3)>(b=5)由于3>5不成立,故其值为假,即为0。【例5.1】main(){charc='k';inti=1,j=2,k=3;floatx=3e+5,y=0.85;printf("%d,%d",’a’+5=k+1);printf("%d,%d",14、%d",i+j+k==-2*j,k==j==i+5);}在本例中求出了各种关系运算符的值。字符变量是以它对应的ASCII码参与运算的。对于含多个关系运算符的表达式,如k==j==i+5,根据运算符的左结合性,先计算k==j,该式不成立,其值为0,再计算0==i+5,也不成立,故表达式值为0。5.1逻辑运算符和表达式5.1.1逻辑运算符极其优先次序C语言中提供了三种逻辑运算符:1)&&与运算2)5、6、或运算3)!非运算与运算符&&和或运算符7、8、均为双目运算符。具有左结合性。非运算符!为单目运算符9、,具有右结合性。逻辑运算符和其它运算符优先级的关系可表示如下:!(非)→&&(与)→10、11、(或)!(非)算术运算符关系运算符&&和12、13、赋值运算符“&&”和“14、15、”低于关系运算符,“!”高于算术运算符。按照运算符的优先顺序可以得出:a>b&&c>d等价于(a>b)&&(c>d)!b==c16、17、d18、19、(dc&&x+yc)&&((x+y)20、1.与运算&&:参与运算的两个量都为真时,结果才为真,否则为假。例如:5>0&&4>2由于5>0为真,4>2也为真,相与的结果也为真。2.或运算21、22、:参与运算的两个量只要有一个为真,结果就为真。两个量都为假时,结果为假。例如:5>023、24、5>8由于5>0为真,相或的结果也就为真。3.非运算!:参与运算量为真时,结果为假;参与运算量为假时,结果为真。例如:!(5>0)的结果为假。虽然C编译在给出逻辑运算值时,以“1”代表“真”,“0”代表“假”。但反过来在判断一个量是为“真”还是为“假”时,以“0”25、代表“假”,以非“0”的数值作为“真”。例如:由于5和3均为非“0”因此5&&3的值为“真”,即为1。又如:526、27、0的值为“真”,即为1。5.1.2逻辑表达式逻辑表达式的一般形式为:表达式逻辑运算符表达式其中的表达式可以又是逻辑表达式,从而组成了嵌套的情形。例如:(a&&b)&&c根据逻辑运算符的左结合性,上式也可写为:a&&b&&c逻辑表达式的值是式中各种逻辑运算的最后值,以“1”和“0”分别代表“真”和“假”。【例5.2】main(){charc='k';inti=1,j=2,k=3;flo28、atx=3e+5,y=0.85;printf("%d,%d",!x*!y,!!!x);printf("%d,%d",x29、30、i&&j-3,i31、32、i+j+k);}本例中!x和!y分别为0,!x*!y也为0,故其输出值为0。由于x为非0,故!!!x的逻辑值为0。对x33、34、i&&j-3式,先计算j-3的值为非0,再求i&&j-3的逻辑值为1,故x35、36、i&&j-3的逻辑值为1。对i
3、式。因此也允许出现嵌套的情况。例如:a>(b>c)a!=(c==d)等。关系表达式的值是真”和“假”,用“1”和“0”表示。如:5>0的值为“真”,即为1。(a=3)>(b=5)由于3>5不成立,故其值为假,即为0。【例5.1】main(){charc='k';inti=1,j=2,k=3;floatx=3e+5,y=0.85;printf("%d,%d",’a’+5=k+1);printf("%d,%d",14、%d",i+j+k==-2*j,k==j==i+5);}在本例中求出了各种关系运算符的值。字符变量是以它对应的ASCII码参与运算的。对于含多个关系运算符的表达式,如k==j==i+5,根据运算符的左结合性,先计算k==j,该式不成立,其值为0,再计算0==i+5,也不成立,故表达式值为0。5.1逻辑运算符和表达式5.1.1逻辑运算符极其优先次序C语言中提供了三种逻辑运算符:1)&&与运算2)5、6、或运算3)!非运算与运算符&&和或运算符7、8、均为双目运算符。具有左结合性。非运算符!为单目运算符9、,具有右结合性。逻辑运算符和其它运算符优先级的关系可表示如下:!(非)→&&(与)→10、11、(或)!(非)算术运算符关系运算符&&和12、13、赋值运算符“&&”和“14、15、”低于关系运算符,“!”高于算术运算符。按照运算符的优先顺序可以得出:a>b&&c>d等价于(a>b)&&(c>d)!b==c16、17、d18、19、(dc&&x+yc)&&((x+y)20、1.与运算&&:参与运算的两个量都为真时,结果才为真,否则为假。例如:5>0&&4>2由于5>0为真,4>2也为真,相与的结果也为真。2.或运算21、22、:参与运算的两个量只要有一个为真,结果就为真。两个量都为假时,结果为假。例如:5>023、24、5>8由于5>0为真,相或的结果也就为真。3.非运算!:参与运算量为真时,结果为假;参与运算量为假时,结果为真。例如:!(5>0)的结果为假。虽然C编译在给出逻辑运算值时,以“1”代表“真”,“0”代表“假”。但反过来在判断一个量是为“真”还是为“假”时,以“0”25、代表“假”,以非“0”的数值作为“真”。例如:由于5和3均为非“0”因此5&&3的值为“真”,即为1。又如:526、27、0的值为“真”,即为1。5.1.2逻辑表达式逻辑表达式的一般形式为:表达式逻辑运算符表达式其中的表达式可以又是逻辑表达式,从而组成了嵌套的情形。例如:(a&&b)&&c根据逻辑运算符的左结合性,上式也可写为:a&&b&&c逻辑表达式的值是式中各种逻辑运算的最后值,以“1”和“0”分别代表“真”和“假”。【例5.2】main(){charc='k';inti=1,j=2,k=3;flo28、atx=3e+5,y=0.85;printf("%d,%d",!x*!y,!!!x);printf("%d,%d",x29、30、i&&j-3,i31、32、i+j+k);}本例中!x和!y分别为0,!x*!y也为0,故其输出值为0。由于x为非0,故!!!x的逻辑值为0。对x33、34、i&&j-3式,先计算j-3的值为非0,再求i&&j-3的逻辑值为1,故x35、36、i&&j-3的逻辑值为1。对i
4、%d",i+j+k==-2*j,k==j==i+5);}在本例中求出了各种关系运算符的值。字符变量是以它对应的ASCII码参与运算的。对于含多个关系运算符的表达式,如k==j==i+5,根据运算符的左结合性,先计算k==j,该式不成立,其值为0,再计算0==i+5,也不成立,故表达式值为0。5.1逻辑运算符和表达式5.1.1逻辑运算符极其优先次序C语言中提供了三种逻辑运算符:1)&&与运算2)
5、
6、或运算3)!非运算与运算符&&和或运算符
7、
8、均为双目运算符。具有左结合性。非运算符!为单目运算符
9、,具有右结合性。逻辑运算符和其它运算符优先级的关系可表示如下:!(非)→&&(与)→
10、
11、(或)!(非)算术运算符关系运算符&&和
12、
13、赋值运算符“&&”和“
14、
15、”低于关系运算符,“!”高于算术运算符。按照运算符的优先顺序可以得出:a>b&&c>d等价于(a>b)&&(c>d)!b==c
16、
17、d18、19、(dc&&x+yc)&&((x+y)20、1.与运算&&:参与运算的两个量都为真时,结果才为真,否则为假。例如:5>0&&4>2由于5>0为真,4>2也为真,相与的结果也为真。2.或运算21、22、:参与运算的两个量只要有一个为真,结果就为真。两个量都为假时,结果为假。例如:5>023、24、5>8由于5>0为真,相或的结果也就为真。3.非运算!:参与运算量为真时,结果为假;参与运算量为假时,结果为真。例如:!(5>0)的结果为假。虽然C编译在给出逻辑运算值时,以“1”代表“真”,“0”代表“假”。但反过来在判断一个量是为“真”还是为“假”时,以“0”25、代表“假”,以非“0”的数值作为“真”。例如:由于5和3均为非“0”因此5&&3的值为“真”,即为1。又如:526、27、0的值为“真”,即为1。5.1.2逻辑表达式逻辑表达式的一般形式为:表达式逻辑运算符表达式其中的表达式可以又是逻辑表达式,从而组成了嵌套的情形。例如:(a&&b)&&c根据逻辑运算符的左结合性,上式也可写为:a&&b&&c逻辑表达式的值是式中各种逻辑运算的最后值,以“1”和“0”分别代表“真”和“假”。【例5.2】main(){charc='k';inti=1,j=2,k=3;flo28、atx=3e+5,y=0.85;printf("%d,%d",!x*!y,!!!x);printf("%d,%d",x29、30、i&&j-3,i31、32、i+j+k);}本例中!x和!y分别为0,!x*!y也为0,故其输出值为0。由于x为非0,故!!!x的逻辑值为0。对x33、34、i&&j-3式,先计算j-3的值为非0,再求i&&j-3的逻辑值为1,故x35、36、i&&j-3的逻辑值为1。对i
18、
19、(dc&&x+yc)&&((x+y)20、1.与运算&&:参与运算的两个量都为真时,结果才为真,否则为假。例如:5>0&&4>2由于5>0为真,4>2也为真,相与的结果也为真。2.或运算21、22、:参与运算的两个量只要有一个为真,结果就为真。两个量都为假时,结果为假。例如:5>023、24、5>8由于5>0为真,相或的结果也就为真。3.非运算!:参与运算量为真时,结果为假;参与运算量为假时,结果为真。例如:!(5>0)的结果为假。虽然C编译在给出逻辑运算值时,以“1”代表“真”,“0”代表“假”。但反过来在判断一个量是为“真”还是为“假”时,以“0”25、代表“假”,以非“0”的数值作为“真”。例如:由于5和3均为非“0”因此5&&3的值为“真”,即为1。又如:526、27、0的值为“真”,即为1。5.1.2逻辑表达式逻辑表达式的一般形式为:表达式逻辑运算符表达式其中的表达式可以又是逻辑表达式,从而组成了嵌套的情形。例如:(a&&b)&&c根据逻辑运算符的左结合性,上式也可写为:a&&b&&c逻辑表达式的值是式中各种逻辑运算的最后值,以“1”和“0”分别代表“真”和“假”。【例5.2】main(){charc='k';inti=1,j=2,k=3;flo28、atx=3e+5,y=0.85;printf("%d,%d",!x*!y,!!!x);printf("%d,%d",x29、30、i&&j-3,i31、32、i+j+k);}本例中!x和!y分别为0,!x*!y也为0,故其输出值为0。由于x为非0,故!!!x的逻辑值为0。对x33、34、i&&j-3式,先计算j-3的值为非0,再求i&&j-3的逻辑值为1,故x35、36、i&&j-3的逻辑值为1。对i
20、1.与运算&&:参与运算的两个量都为真时,结果才为真,否则为假。例如:5>0&&4>2由于5>0为真,4>2也为真,相与的结果也为真。2.或运算
21、
22、:参与运算的两个量只要有一个为真,结果就为真。两个量都为假时,结果为假。例如:5>0
23、
24、5>8由于5>0为真,相或的结果也就为真。3.非运算!:参与运算量为真时,结果为假;参与运算量为假时,结果为真。例如:!(5>0)的结果为假。虽然C编译在给出逻辑运算值时,以“1”代表“真”,“0”代表“假”。但反过来在判断一个量是为“真”还是为“假”时,以“0”
25、代表“假”,以非“0”的数值作为“真”。例如:由于5和3均为非“0”因此5&&3的值为“真”,即为1。又如:5
26、
27、0的值为“真”,即为1。5.1.2逻辑表达式逻辑表达式的一般形式为:表达式逻辑运算符表达式其中的表达式可以又是逻辑表达式,从而组成了嵌套的情形。例如:(a&&b)&&c根据逻辑运算符的左结合性,上式也可写为:a&&b&&c逻辑表达式的值是式中各种逻辑运算的最后值,以“1”和“0”分别代表“真”和“假”。【例5.2】main(){charc='k';inti=1,j=2,k=3;flo
28、atx=3e+5,y=0.85;printf("%d,%d",!x*!y,!!!x);printf("%d,%d",x
29、
30、i&&j-3,i31、32、i+j+k);}本例中!x和!y分别为0,!x*!y也为0,故其输出值为0。由于x为非0,故!!!x的逻辑值为0。对x33、34、i&&j-3式,先计算j-3的值为非0,再求i&&j-3的逻辑值为1,故x35、36、i&&j-3的逻辑值为1。对i
31、
32、i+j+k);}本例中!x和!y分别为0,!x*!y也为0,故其输出值为0。由于x为非0,故!!!x的逻辑值为0。对x
33、
34、i&&j-3式,先计算j-3的值为非0,再求i&&j-3的逻辑值为1,故x
35、
36、i&&j-3的逻辑值为1。对i
此文档下载收益归作者所有