欢迎来到天天文库
浏览记录
ID:50707813
大小:37.52 KB
页数:6页
时间:2020-03-07
《C程序设计基础之三.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、C程序设计基础之三 关系运算符和表达式 在程序中经常需要比较两个量的大小关系,以决定程序下一步的工作。比较两个量的运算符称为关系运算符。在C语言中有以下关系运算符: <小于 <=小于或等于 >大于 >=大于或等于 ==等于 !=不等于 关系运算符都是双目运算符,其结合性均为左结合。关系运算符的优先级低于算术运算符,高于赋值运算符。在六个关系运算符中,<,<=,>,>=的优先级相同,高于==和!=,==和!=的优先级相同。 关系表达式 关系表达式的一般形式为:表达式关系运算符表达式例如:a+b>c-d,x>3/2,
2、'a'+1(b>c),a!=(c==d)等。关系表达式的值是“真”和“假”,用“1”和“0”表示。 如:5>0的值为“真”,即为1。(a=3)>(b=5)由于3>5不成立,故其值为假,即为0。voidmain(){ charc='k'; inti=1,j=2,k=3; floatx=3e+5,y=0.85; printf("%d,%d",'a'+5=k+1); printf("%d,%d",13、k';inti=1,j=2,k=3;floatx=3e+5,y=0.85;printf("%d,%d",'a'+5=k+1);printf("%d,%d",14、达式 逻辑运算符C语言中提供了三种逻辑运算符&&与运算 5、6、或运算 !非运算与运算符&&和或运算符7、8、均为双目运算符。具有左结合性。非运算符!为单目运算符,具有右结合性。逻辑运算符和其它运算符优先级的关系可表示如下: 按照运算符的优先顺序可以得出: a>b&&c>d等价于(a>b)&&(c>d) !b==c9、10、dc&&x+yc)&&((x+y) switch语句 C语言还提供了另一种用于多分支选择的switch语句,其一般形式为:switch(表达式){ case常量表达式1:语句1; cas11、e常量表达式2:语句2; … case常量表达式n:语句n; default:语句n+1;} 其语义是:计算表达式的值。并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。voidmain(){ inta; printf("inputintegernumber:"); scanf("%d",&a); switch(a){ case1:printf("Mond12、ay"); case2:printf("Tuesday"); case3:printf("Wednesday"); case4:printf("Thursday"); case5:printf("Friday"); case6:printf("Saturday"); case7:printf("Sunday"); default:printf("error"); } } 本程序是要求输入一个数字,输出一个英文单词。但是当输入3之后,却执行了case3以及以后的所有语句,输出了Wednes13、day及以后的所有单词。这当然是不希望的。为什么会出现这种情况呢?这恰恰反应了switch语句的一个特点。在switch语句中,“case常量表达式”只相当于一个语句标号,表达式的值和某标号相等则转向该标号执行,但不能在执行完该标号的语句后自动跳出整个switch语句,所以出现了继续执行所有后面case语句的情况。这是与前面介绍的if语句完全不同的,应特别注意。为了避免上述情况,C语言还提供了一种break语句,专用于跳出switch语句,break语句只有关键字break,没有参数。在后面还将详细介绍。修改例题的程序,在每一case14、语句之后增加break语句,使每一次执行之后均可跳出switch语句,从而避免输出不应有的结果。voidmain(){ inta; printf("inputintegernumber:"); scanf("%d",&a
3、k';inti=1,j=2,k=3;floatx=3e+5,y=0.85;printf("%d,%d",'a'+5=k+1);printf("%d,%d",14、达式 逻辑运算符C语言中提供了三种逻辑运算符&&与运算 5、6、或运算 !非运算与运算符&&和或运算符7、8、均为双目运算符。具有左结合性。非运算符!为单目运算符,具有右结合性。逻辑运算符和其它运算符优先级的关系可表示如下: 按照运算符的优先顺序可以得出: a>b&&c>d等价于(a>b)&&(c>d) !b==c9、10、dc&&x+yc)&&((x+y) switch语句 C语言还提供了另一种用于多分支选择的switch语句,其一般形式为:switch(表达式){ case常量表达式1:语句1; cas11、e常量表达式2:语句2; … case常量表达式n:语句n; default:语句n+1;} 其语义是:计算表达式的值。并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。voidmain(){ inta; printf("inputintegernumber:"); scanf("%d",&a); switch(a){ case1:printf("Mond12、ay"); case2:printf("Tuesday"); case3:printf("Wednesday"); case4:printf("Thursday"); case5:printf("Friday"); case6:printf("Saturday"); case7:printf("Sunday"); default:printf("error"); } } 本程序是要求输入一个数字,输出一个英文单词。但是当输入3之后,却执行了case3以及以后的所有语句,输出了Wednes13、day及以后的所有单词。这当然是不希望的。为什么会出现这种情况呢?这恰恰反应了switch语句的一个特点。在switch语句中,“case常量表达式”只相当于一个语句标号,表达式的值和某标号相等则转向该标号执行,但不能在执行完该标号的语句后自动跳出整个switch语句,所以出现了继续执行所有后面case语句的情况。这是与前面介绍的if语句完全不同的,应特别注意。为了避免上述情况,C语言还提供了一种break语句,专用于跳出switch语句,break语句只有关键字break,没有参数。在后面还将详细介绍。修改例题的程序,在每一case14、语句之后增加break语句,使每一次执行之后均可跳出switch语句,从而避免输出不应有的结果。voidmain(){ inta; printf("inputintegernumber:"); scanf("%d",&a
4、达式 逻辑运算符C语言中提供了三种逻辑运算符&&与运算
5、
6、或运算 !非运算与运算符&&和或运算符
7、
8、均为双目运算符。具有左结合性。非运算符!为单目运算符,具有右结合性。逻辑运算符和其它运算符优先级的关系可表示如下: 按照运算符的优先顺序可以得出: a>b&&c>d等价于(a>b)&&(c>d) !b==c
9、
10、dc&&x+yc)&&((x+y) switch语句 C语言还提供了另一种用于多分支选择的switch语句,其一般形式为:switch(表达式){ case常量表达式1:语句1; cas
11、e常量表达式2:语句2; … case常量表达式n:语句n; default:语句n+1;} 其语义是:计算表达式的值。并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。voidmain(){ inta; printf("inputintegernumber:"); scanf("%d",&a); switch(a){ case1:printf("Mond
12、ay"); case2:printf("Tuesday"); case3:printf("Wednesday"); case4:printf("Thursday"); case5:printf("Friday"); case6:printf("Saturday"); case7:printf("Sunday"); default:printf("error"); } } 本程序是要求输入一个数字,输出一个英文单词。但是当输入3之后,却执行了case3以及以后的所有语句,输出了Wednes
13、day及以后的所有单词。这当然是不希望的。为什么会出现这种情况呢?这恰恰反应了switch语句的一个特点。在switch语句中,“case常量表达式”只相当于一个语句标号,表达式的值和某标号相等则转向该标号执行,但不能在执行完该标号的语句后自动跳出整个switch语句,所以出现了继续执行所有后面case语句的情况。这是与前面介绍的if语句完全不同的,应特别注意。为了避免上述情况,C语言还提供了一种break语句,专用于跳出switch语句,break语句只有关键字break,没有参数。在后面还将详细介绍。修改例题的程序,在每一case
14、语句之后增加break语句,使每一次执行之后均可跳出switch语句,从而避免输出不应有的结果。voidmain(){ inta; printf("inputintegernumber:"); scanf("%d",&a
此文档下载收益归作者所有