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