C语言程序设计课件ppt及程序代码第5章.ppt

上传人:王** 文档编号:173886 上传时间:2023-03-16 格式:PPT 页数:31 大小:325.50KB
下载 相关 举报
C语言程序设计课件ppt及程序代码第5章.ppt_第1页
第1页 / 共31页
C语言程序设计课件ppt及程序代码第5章.ppt_第2页
第2页 / 共31页
C语言程序设计课件ppt及程序代码第5章.ppt_第3页
第3页 / 共31页
C语言程序设计课件ppt及程序代码第5章.ppt_第4页
第4页 / 共31页
C语言程序设计课件ppt及程序代码第5章.ppt_第5页
第5页 / 共31页
C语言程序设计课件ppt及程序代码第5章.ppt_第6页
第6页 / 共31页
C语言程序设计课件ppt及程序代码第5章.ppt_第7页
第7页 / 共31页
C语言程序设计课件ppt及程序代码第5章.ppt_第8页
第8页 / 共31页
C语言程序设计课件ppt及程序代码第5章.ppt_第9页
第9页 / 共31页
C语言程序设计课件ppt及程序代码第5章.ppt_第10页
第10页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C语言程序设计课件ppt及程序代码第5章.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计课件ppt及程序代码第5章.ppt(31页珍藏版)》请在优知文库上搜索。

1、if (50) y=1;if (1=53) y=1;else y=-1;5.1.1 关系运算符及其优先次序关系运算符及其优先次序 关系运算符含义优先级与结合方向小于优先级相同(高)结合方向(从左向右)大于=大于或等于=等于优先级相同(低)结合方向(从左向右)!=不等于关系运算符与算术运算符、赋值运算符的优先关系运算符与算术运算符、赋值运算符的优先级关系级关系 ca+b 等效于 c(a+b) ab!=c 等效于 (ab)!=c a=bc 等效于 a=(bc 等效于 a=(bc) 关系表达式的一般形式为关系表达式的一般形式为: 表达式表达式 关系运算符关系运算符 表达式表达式 表达式可以是算术表达

2、式、逻辑表达式、赋值表达式、字符表表达式可以是算术表达式、逻辑表达式、赋值表达式、字符表达式达式 a+bc-d x3/2 a+1(bc) a!=(c=d)关系表达式的值是关系表达式的值是“真真”和“假假”,用“1”和“0”表示。例、 a=3, b=2, c=1, 则:则: ab 真,表达式的值为真,表达式的值为1(ab) = = c 真,表达式的值为真,表达式的值为1b+cbd的值等于的值等于1假,表达式的值为假,表达式的值为05_1_1.cpp5_1_2.cpp if (ab AND xy) printf(“OK”); 用逻辑运算符将关系表达式或逻辑量连接起来的式子就是。 如果ab且xy,则

3、上述逻辑表达式的值为“真”。5.2.1 逻辑运算符及其优先次序逻辑运算符及其优先次序&逻辑“与”(AND)“双目运算符”:要求两个操作数,如:(ab) & (xy)|逻辑“或”(OR)!逻辑“非”(NOT)单目运算符,要求一个操作数,如:!(ab)a & b (若a和b均为真,逻辑表达式a&b为真)a | b (若a或b为真,逻辑表达式a|b为真)!a (若a为真,逻辑表达式!a为假)a ab b!a!a!b!ba & ba & ba | ba | b真真假假真真真假假真假真假真真假假真假假真真假假 在一个逻辑表达式中,包含多个逻辑运算符在一个逻辑表达式中,包含多个逻辑运算符 ,按如图优先级运

4、算按如图优先级运算:f=!a & b | xy+2 & cf=(!a) & b | xy+2 & cf=(!a) & b | x(y+2) & cf=(!a) & b | (x(y+2) & cf=(!a) & b | (x(y+2) & c) C语言语言真真假假计算逻辑表达式的值10判断量的真假非00 逻辑表达式的值应该是一个逻辑量逻辑表达式的值应该是一个逻辑量“真真”或或 假假”。c语言编译系语言编译系统在给出逻辑运算结果时,以数值统在给出逻辑运算结果时,以数值1代表代表“真真”,以,以0代表代表“假假”,但在判断但在判断个量是否为个量是否为“真真”时,以时,以0代表代表“假假”,以非,以

5、非0代表代表“真真”。即将一个非零的数值认作为。即将一个非零的数值认作为“真真”。5_2_1.cpp 编译器在求解逻辑表达式的值时,采用“非非完全求解完全求解”的方法 1、a & b & c 只有a为真时,才判别b的值;只有a和b均为真时,才判别c的值。 只要a为假,就不再判别b和c的值,直接求得表达式的值为假。5_2_2.cpp2、a | b | c只有a为假时,才判别b的值;只有a和b均为假时,才判别c的值。只要a为真,就不再判别b和c的值,直接求得表达式的值为真。5_2_3.cpp5.3.1 if语句的三种形式语句的三种形式1. 第一种形式为基本形式第一种形式为基本形式: if (xy)

6、 printf(“%d”,x); 语句可以是用括起来的复合语句, 表达式可以是常常量、变量、量、变量、 表达式表达式。 其类型可以是整、实、字符型。语句可以是一句或复合语句。 其语义是:如果表达式的值为真,则执行其后的语句,否则不执行该语句。其过程可表示为下图。2. 第二种形式为第二种形式为: if-elseif(表达式表达式) 语句语句1; else 语句语句2;其语义是:如果表达式的值为真,则执行语句1,否则执行语句2 。其执行过程可表示为下图3. 第三种形式为第三种形式为if-else-if形式形式if(表达式表达式1) 语句语句1;else if(表达式表达式2) 语句语句2;else

7、 if(表达式表达式3) 语句语句3; else if(表达式表达式m) 语句语句m;else 语句语句n; 其语义是:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。然后跳到整个if语句之外继续执行程序。 如果所有的表达式均为假,则执行语句n。然后继续执行后续程序。 5_3_2.cpp说明:说明:1.执行if语句时,先判断表达式的值,为真时(非0),执行其后语句,为假(0)时不执行其后的语句,表达式可以是常量、变量、表达式(关系、逻辑、算术、赋值)。 2.if的各内嵌语句用“ ; ”号结束。 3.if和else后面的内嵌语句若有多句,用 括起构成复合语句。 嵌套嵌套:在if语句中

8、,又包含1到多个if 语句 一般形式:一般形式: if( ) 条件成立时的内嵌语句条件成立时的内嵌语句 if( ) 语句1 else 语句2 else 条件不成立时的内嵌语句条件不成立时的内嵌语句 if( ) 语句3 else 语句4 使用内嵌的if语句时,应区分表面形式与实际作用 if( ) if( ) 语句1 else if( ) 语句2 else 语句3 在C语言中,if与else 的配对原则是: 从最内层开始,从最内层开始,else总是与它上面最近的,未曾配对的总是与它上面最近的,未曾配对的if配对配对。因此,上述问题在编译时的真正效果是: 为了使程序清晰,不至出错,采取的方法是: 用

9、 实现,如上述问题可进行如下描述: if( ) if( ) 语句1 else if( ) 语句2 else 语句3 )说明:说明:1、条件运算符的执行顺序: max=(ab)?a:b;If (ab) max=a;else max=b2、条件运算符的优先级高于赋值运算符,低于算术运算符和关系运算符。max = ab?a:b max = (ab)?a:b)ab?a:b+1 (ab)?a:(b+1)3、条件运算符的结合方向:从右向左 ab?a:cd?c:d a,b,c,d的取值9,8,4,3,求表达式的值?5_2_4.cpp4、表达式2和表达式3不仅可以式是数值表达式,还可以是赋值表达式或函数表达式

10、。例如:main( ) int a,b; scanf(“%d,%d”,&a,&b); ab ? printf(“max=%xn”,a) :printf(“max=%dn”,b); 输入:3 , 5 输出:max=55、表达式1,2,3类型可以相同,也可不同,如果类型不同时,低类型向高类型转换 main( ) int x=-1, y=5, z=6; printf (“%cn” , x ? a : b ); printf (“%f n”, yz ? 1 : 1. 5); 输出结果?输出:a 1.0000005_3_7.cpp switch(表达式表达式) case 常量表达式常量表达式1: 语句语

11、句1; case 常量表达式常量表达式2: 语句语句2; case 常量表达式常量表达式n: 语句语句n; default : 语句语句n+1; 1、switch后的表达式,新的ANSI C标准中允许表达式的类型为任何类型。 2、每个case后的常量表达式只能是常量组成的表达式,当switch后的表达式的值与某一个常量表达式的值一致时。程序就转到此case后的语句开始执行。如果没有一个常量表达式的值与switch后的值一致,就执行default后的语句。 3、第个case后的常量表达式的值必须互不相必须互不相同同,不然的话程序就不知该跳到何外开始执行。 4、在执行完一个case后面的语句后,程

12、序流程转到下一个case后的语句开始执行 程序清单运行结果 x=B;switch(x) case A:printf(Grade is An); case B:printf(Grade is Bn); case C:printf(Grade is Cn); case D:printf(Grade is Dn);Grade is BGrade is CGrade is D5_3_6.cpp 6、如果只想执行某个case后的语句,那么就要在case的语句的最后使用break语句以跳出switch语句。程序清单运行结果 x=B;switch(x) case A:printf(Grade is An);

13、break; case B:printf(Grade is Bn);break; case C:printf(Grade is Cn);break; case D:printf(Grade is Dn);break; Grade is B 7、default这一行可以省略。 8、多个 case可以共用一段程序。 比如我们给判定学生的成绩等级,只区分及格和不及格的。程序清单运行结果main()char x; scanf(“%c”,&x); switch(x) case A: case B: case C:printf(“及格及格.n”); break; case D:printf(“不及格不及格n); A及格及格._B及格及格._D不及格及格._

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > .NET

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!