欢迎来到天天文库
浏览记录
ID:8997066
大小:189.00 KB
页数:12页
时间:2018-04-14
《分支结构、关系与逻辑运算》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
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关系运算符和表达式在程序中经常需要比较两个量的大小关系,以决定程序下一步的工作。比较两个量的运算符称为关系
2、运算符。5.1.1关系运算符及其优先次序在C语言中有以下关系运算符:1)<小于2)<=小于或等于3)>大于4)>=大于或等于5)==等于6)!=不等于关系运算符都是双目运算符,其结合性均为左结合。关系运算符的优先级低于算术运算符,高于赋值运算符。在六个关系运算符中,<,<=,>,>=的优先级相同,高于==和!=,==和!=的优先级相同。5.1.2关系表达式关系表达式的一般形式为:表达式关系运算符表达式例如:a+b>c-d第12页靳润昭C语言教程讲义2001年2月17日x>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、y);printf("%d,%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页靳润昭C语言教程讲义2001年2月17日!(非)算术运算符关系运算符&&和12、13、赋值运算符“&&”和“14、15、”低于关系运算符,“!”高于算术运算符。按照运算符的优先顺序可以得出:a>b&&c>d等价于(a>b)&&(c>d)!b==c16、17、d18、19、(dc&&x+yc)&&((x+y)20、1”和“0”来表示。其求值规则如下: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”代表“假”。但反过来在判断一个量是为“真”还是为“25、假”时,以“0”代表“假”,以非“0”的数值作为“真”。例如:由于5和3均为非“0”因此5&&3的值为“真”,即为1。又如:526、27、0的值为“真”,即为1。5.1.2逻辑表达式逻辑表达式的一般形式为:表达式逻辑运算符表达式其中的表达式可以又是逻辑表达式,从而组成了嵌套的情形。例如:(a&&b)&&c第12页靳润昭C语言教程讲义2001年2月17日根据逻辑运算符的左结合性,上式也可写为:a&&b&&c逻辑表达式的值是式中各种逻辑运算的最后值,以“1”和“0”分别代表“真”和“假”。【例5.2】main(){charc=28、'k';inti=1,j=2,k=3;floatx=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。由
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、y);printf("%d,%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页靳润昭C语言教程讲义2001年2月17日!(非)算术运算符关系运算符&&和12、13、赋值运算符“&&”和“14、15、”低于关系运算符,“!”高于算术运算符。按照运算符的优先顺序可以得出:a>b&&c>d等价于(a>b)&&(c>d)!b==c16、17、d18、19、(dc&&x+yc)&&((x+y)20、1”和“0”来表示。其求值规则如下: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”代表“假”。但反过来在判断一个量是为“真”还是为“25、假”时,以“0”代表“假”,以非“0”的数值作为“真”。例如:由于5和3均为非“0”因此5&&3的值为“真”,即为1。又如:526、27、0的值为“真”,即为1。5.1.2逻辑表达式逻辑表达式的一般形式为:表达式逻辑运算符表达式其中的表达式可以又是逻辑表达式,从而组成了嵌套的情形。例如:(a&&b)&&c第12页靳润昭C语言教程讲义2001年2月17日根据逻辑运算符的左结合性,上式也可写为:a&&b&&c逻辑表达式的值是式中各种逻辑运算的最后值,以“1”和“0”分别代表“真”和“假”。【例5.2】main(){charc=28、'k';inti=1,j=2,k=3;floatx=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。由
4、y);printf("%d,%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页靳润昭C语言教程讲义2001年2月17日!(非)算术运算符关系运算符&&和
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”和“0”来表示。其求值规则如下: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”代表“假”。但反过来在判断一个量是为“真”还是为“25、假”时,以“0”代表“假”,以非“0”的数值作为“真”。例如:由于5和3均为非“0”因此5&&3的值为“真”,即为1。又如:526、27、0的值为“真”,即为1。5.1.2逻辑表达式逻辑表达式的一般形式为:表达式逻辑运算符表达式其中的表达式可以又是逻辑表达式,从而组成了嵌套的情形。例如:(a&&b)&&c第12页靳润昭C语言教程讲义2001年2月17日根据逻辑运算符的左结合性,上式也可写为:a&&b&&c逻辑表达式的值是式中各种逻辑运算的最后值,以“1”和“0”分别代表“真”和“假”。【例5.2】main(){charc=28、'k';inti=1,j=2,k=3;floatx=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。由
18、
19、(dc&&x+yc)&&((x+y)20、1”和“0”来表示。其求值规则如下: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”代表“假”。但反过来在判断一个量是为“真”还是为“25、假”时,以“0”代表“假”,以非“0”的数值作为“真”。例如:由于5和3均为非“0”因此5&&3的值为“真”,即为1。又如:526、27、0的值为“真”,即为1。5.1.2逻辑表达式逻辑表达式的一般形式为:表达式逻辑运算符表达式其中的表达式可以又是逻辑表达式,从而组成了嵌套的情形。例如:(a&&b)&&c第12页靳润昭C语言教程讲义2001年2月17日根据逻辑运算符的左结合性,上式也可写为:a&&b&&c逻辑表达式的值是式中各种逻辑运算的最后值,以“1”和“0”分别代表“真”和“假”。【例5.2】main(){charc=28、'k';inti=1,j=2,k=3;floatx=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。由
20、1”和“0”来表示。其求值规则如下: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”代表“假”。但反过来在判断一个量是为“真”还是为“
25、假”时,以“0”代表“假”,以非“0”的数值作为“真”。例如:由于5和3均为非“0”因此5&&3的值为“真”,即为1。又如:5
26、
27、0的值为“真”,即为1。5.1.2逻辑表达式逻辑表达式的一般形式为:表达式逻辑运算符表达式其中的表达式可以又是逻辑表达式,从而组成了嵌套的情形。例如:(a&&b)&&c第12页靳润昭C语言教程讲义2001年2月17日根据逻辑运算符的左结合性,上式也可写为:a&&b&&c逻辑表达式的值是式中各种逻辑运算的最后值,以“1”和“0”分别代表“真”和“假”。【例5.2】main(){charc=
28、'k';inti=1,j=2,k=3;floatx=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。由
31、
32、i+j+k);}本例中!x和!y分别为0,!x*!y也为0,故其输出值为0。由
此文档下载收益归作者所有