




已阅读5页,还剩62页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 C语言 条件判断、选择结构程序设计 徐艳艳 2 本次课程所讲内容 l条件判断 l关系运算符与关系表达式 l逻辑运算符与逻辑表达式 l选择结构程序设计 lif语句 l条件运算符与条件表达式 lswitch-case语句 3 本次课程所讲内容 l条件判断 l关系运算符与关系表达式 l逻辑运算符与逻辑表达式 l选择结构程序设计 lif语句 l条件运算符与条件表达式 lswitch-case语句 4 条件判断 l如果明天天气好,我们就去踏青 l票卖完了的话,我们就看不成球赛了 l如果能早点下课,我们就可以抢到饭了 l如果ab,输出a;如果ab lac la大于ab =大于或等于 a=b =等于a=b !=不等于a!=b 优先级 相同 (高) 优先级 相同 (低) 关系、算术和赋值运算符的优先级关系 l例如 lca+b lab=c la=bc lx!=a*bb+c l(a=3)(b=5) lab)bc l2*a+bbc (ab)=c b+cb le=abc lf=ab+cb)+(cb和xy需要同时满足 lab和xy至少有一个条件要满足 l70岁以上的老人和10人岁以下的儿童, 入园免票 14 逻辑运算符 逻辑运算符名 称示 例 !a 逻辑表达式的结果为0 真假 逻辑表达式的结果为0 真 19 逻辑表达式举例(1) la=4,b=5 l!a la 表达式 语句 0(假) 非0(真 ) 关系表达式 一个语句 可以有多个 语句 29 if 结构举例 l输入两个实数,按代数值由小到大 的顺序输出这两个数 l分析问题 l假设两个数是a,b l比较两个数的大小 l如果ab,a和b的值互换,之后输出a 和b的值 l如果a void main() double a,b,t; printf(“Please enter a and b:“); scanf(“%lf,%lf“, if(ab) t=a; a=b; b=t; printf(“%-7.2f,%7.2fn“,a,b); if 结构 程序举例 c6_1.c 将两个实 数按照由 小到大的 顺序输出 程序运行结果: Please enter a and b: 3.6,-3.2 -3.20 , 3.60 多个语 句,需 要由花 括号 括起来 31 if-else 结构 l格式:if (表达式) 语句1; else 语句2; l例如 if(xy) printf(“%d“,x); else printf(“%d“,y); 表达式 语句1语句2 非0(真 ) 0(假) else不能单独使用,如果 使用,必须与 if 配对 if-else结构举例 l输入矩形的两个边长,求矩形的面积, 为了防止误输入,如果输入的边长小于 或者等于0,要输出告错信息 l分析问题 l要定义三个变量,边长1,边长2,面积 l如果边长1和边长2大于0,计算矩形的面积 并且输出面积的值 l否则,给出告错信息 33 #include void main() double a,b,area; printf(“请输入矩形边长a和b:“); scanf(“%lf,%lf“, if (a0 printf(“面积=%fn“,area); else printf(“边长必须大于0n“); if-else结构 程序举例 c6_2.c 求矩形的 面积 逻辑表达 式 34 #include void main() double a,b,area; printf(“请输入矩形边长a和b:“); scanf(“%lf,%lf“, if (a0 printf(“面积=%fn“,area); if(a void main() float x; int y; printf(“Please input x:“); scanf(“%f“, if(2.0 void main() float x; int y; printf(“Please input x:“); scanf(“%f“, if(x=2.0 printf(“Please input x:“); scanf(“%lf“, if(x500 43 #include void main() double number,cost; printf(“Please input number:“); scanf(“%lf“, if(number500) cost=0.15; else if(number300) cost=0.10; else if(number100) cost=0.075; else if(number50) cost=0.05; else cost=0; printf(“cost=%.3fn“,cost); if- else if 结 构程序举例 c6_7.c l在if语句中,若括号内的表达式的值 为0,按“假”处理,若表达式的值为 非0,按“真”处理。所以,括号内可 以是关系表达式,逻辑表达式或者 单个的量或者算数表达式 lif (ab) lif (ab lif (a) printf(“%d”,a); 45 if语句的嵌套(1) if(表达式) else 语句3; if(表达式) 语句1; else if(表达式) else 语句1; 语句2; 语句1; 语句2; if(表达式2) 语句1; else 语句2; if(表达式2) 语句2; else 语句3; if(表达式1) 语句1; else 语句2; if(表达式2) 语句3; else 语句4; 46 if语句的嵌套(2) lelse总是与它上面最近的未配对 的 if 配对 if ( ) if ( ) 语句1; else if ( ) 语句2; else 语句3; if ( ) if ( ) 语句1; else if ( ) 语句2; else 语句3; 47 if语句的嵌套(3 ) l最好使外层if和内嵌 if都包含else部分, 这样if和else的数量 相同,一一对应, 不易出错 l如果if与else的数目 不同,可以加花括 号来确定配对关系 if ( ) if ( ) 语句1; else 语句2; else if ( ) 语句2; else 语句3; if ( ) if ( ) 语句1; else 语句2 48 if语句的嵌套举例 l编写一段程序,输入一个实数x, 按照如下的公式输出整数y的值 y= -1 x0 1 -1 0 49 #include void main() double x; int y; printf(“enter x:“); scanf(“%lf“, if(x0 正确 50 #include void main() double x; int y; printf(“enter x:“); scanf(“%lf“, if(x=0) if(x0) y=1; else y=0; else y=-1; printf(“x=%f,y=%dn“,x,y); if语句的嵌套 程序举例 c6_9.c y= -1 x0 正确 51 #include void main() double x; int y; printf(“enter x:“); scanf(“%lf“, y=-1; if(x!=0) if(x0) y=1; else y=0; printf(“x=%f,y=%dn“,x,y); if语句的嵌套 程序举例 c6_10.c y= -1 x0 不正确 52 #include void main() double x; int y; printf(“enter x:“); scanf(“%lf“, y=0; if(x=0) if(x0) y=1; else y=-1; printf(“x=%f,y=%dn“,x,y); if语句的嵌套 程序举例 c6_11.c y= -1 x0 不正确 53 本次课程所讲内容 l条件判断 l关系运算符与关系表达式 l逻辑运算符与逻辑表达式 l选择结构程序设计 lif语句 l条件运算符与条件表达式 lswitch-case语句 54 条件运算符和条件表达式(1) l条件运算符“? :” l条件表达式 表达式1 ? 表达式2 : 表达式3 表达式1 表达式2 的值 表达式3 的值 55 条件运算符和条件表达式(2) max=ab ? a : b; if(ab) max=a; else max=b; 56 条件运算符和条件表达式(3) l条件运算符优先级高于赋值运算符 ,但低于算术运算符、关系运算符 、逻辑运算符 ab ? a : b ab ? a : b+1 b=!a ? 0 : a a printf(“enter a and b:“); scanf(“%d,%d“, ab?(a=100):(b=100); printf(“a=%d,b=%dn“,a,b) ; temp8.c 59 #include void main() int a,b; printf(“enter a and b:“); scanf(“%d,%d“, ab ? printf(“max is a=%dn“,a) : printf(“max is b=%dn“,b); if(ab) printf(“max is a=%dn”,a); else printf(“max is b=%dn”,b); temp9.c 60 本次课程所讲内容 l条件判断 l关系运算符与关系表达式 l逻辑运算符与逻辑表达式 l选择结构程序设计 lif语句 l条件运算符与条件表达式 lswitch-case语句 61 switch-case语句 l格式 switch(表达式)不能为实型 不能为变量 case 常量表达式1:语句1 ;break; case 常量表达式2:语句2 ;break; case 常量表达式n:语句n ;break; default: 语句n+1; break; switch语句 lswitch后面括号内的“表达式”可以是 任何类型的表达式,值为离散型 l当表达式的值与某一个case后面的常 量表达式的值相等时,就执行此case 后面的语句,如果都不匹配,就执行 default后面的语句 l各个case后面的常量表达式的值必须 互不相同 l各个case和default的出现次序不影响 执行结果 63 #include void main() char grade; printf(“enter grade:“); scanf(“%c“, switch(grade) case A: printf(“85100n“); case B: printf(“7084n“); case C: printf(“6069n“); case D: printf(“ void main() char grade; printf(“enter grade:“); scanf(“%c“, switch(grade) case A: printf(“85100n“);break; case B: printf(“7084n“);break; case C: printf(“6069n“);break; case D: printf(“ void main() int a=3,b=6; switch(ab?1:2) case 1:b=a+b; case 2:a=a+b; default:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 混凝土施工中气候适应性调整方案
- 小学四年级英语上册Unit6单元语音速记与巧练(含答案)
- 水稻讲解语音课件
- 给水工程噪音控制方案
- 建筑工程项目测量与定位控制方案
- 水痘课件教学课件
- 造型基础平面构成设计76课件
- 装饰图案中国传统图案二麻梦琳第二章第二节42课件
- 二零二五年度电子商务平台运营合同范本
- 二零二五年企业法人代表任期责任解除合同
- 有限空间安全作业培训试题(含答案)
- 物业应急管理办法
- 设备调剂管理办法
- 蓝天救援队规定管理制度
- 银监会手机租赁管理办法
- 常见上肢骨折护理常规
- 2025建筑安全员考试题库
- 从2025年河南中考语文试卷中分析阅读理解如何提分
- 军工领域涉密项目保密风险评估及防控措施
- 2025发展对象考试题库附含参考答案
- 公共打印区域管理办法
评论
0/150
提交评论