第四章 选择结构教学课件.pptx
《第四章 选择结构教学课件.pptx》由会员分享,可在线阅读,更多相关《第四章 选择结构教学课件.pptx(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第4章 选择结构程序设计目录CONTENTS简单选择结构多分支选择结构选择结构程序举例4.14.24.3简 单 选 择 结 构4.1 单分支if语句双分支if语句if语句分类if语句分类01if语句是条件选择语句,它通过给定的条件来进行判断,从而决定要执行的操作03单分支if语句0201双分支if语句多分支if语句单分支if语句02格式: if(表达式)语句;功能:首先计算表达式的值。若表达式的值为“真”(非0),则执行语句;若表达式的值为“假”(为0),则直接转到此if语句的下一条语句去执行。例如:if(xy)printf(”%d”,x);如果xy为真,则打印x的值,否则执行下面的语句。单分
2、支if语句执行流程图例1:输入两个整数,输出其中的较大数运行结果:Input two numbers:-23 45max=45#include stdio.hint main() int a,b,max; printf(n input two numbers: ); scanf(%d%d,&a,&b); max=a; if (maxb) max=b; printf(max=%dn,max); return 0; 例2:小明的姐姐在假日旅行社工作,旅行社为了争取更多的游客,给出优惠措施:团购五人(及以上),团费8折。姐姐请小明帮忙,做一个可以根据输入的人数和团费,计算实际支付团费的程序。小明该怎
3、么写这个程序呢?运行运行结果结果:输入人数p=6团费c=430总费用为:344.00#includeint main()int p;float c;printf(输入人数p=);scanf(%d,&p);printf(输入团费c=);scanf(%f,&c);if(p=5)c=c*0.8;printf(总费用为:%.2fn,c);return 0;双分支if语句03格式: if(表达式) 语句1; else 语句2;功能:首先判断表达式的值,若表达式的值为“真”(非0),则执行语句1;否则,执行语句2。例如:if(xy)printf(“%d”,x);else printf(“%d”,y);如果
4、如果xy为真,则打印x的值,否则xy为假,执行else语句,打印y值。 双分支if语句执行流程图例3:用双分支if语句形式改写例1为:#include stdio.hint main() int a,b,max; printf(n input two numbers: ); scanf(%d%d,&a,&b); max=a; if (maxb) max=a; else max=b; printf(max=%dn,max); return 0;练习:用双分支if语句形式改写例2例4:从键盘输入一个整数,判断它是偶数还是奇数,并输出结果分析:一个数如果能被2整除,则是偶数,否则是奇数。我们用对2取
5、余的方法来验证这个是否为偶数。若n%2余数为0,说明n是一个偶数,或n%2余数不为0,则n是一个奇数。#include “stdio.h”int main() int n; printf(input a number:); /*提示输入一个数 */ scanf(%d,&n); if (n%2=0) /*若n%2余数=0,则说明数n是一个偶数 */ printf(The number is even!n); /*打印数n是一个偶数 */ else printf(The number is odd!n); /*否则,打印数n是一个奇数 */ return 0;多 分 支 选 择 结 构4.2 多分
6、支if语句多分支switch语句if语句的嵌套switch语句和多分支if语句比较多分支if语句01多分支if语句一般形式为:if (表达式1) 语句1;else if (表达式2) 语句2; else if (表达式n) 语句n;else 语句n+1; 多分支if语句执行流程图例1:根据x的值,判断输出y的值。#include int main() int x,y; printf(please input x:); scanf(%d,&x); if(x0) printf(y=1n); else if(x0) printf(y=-1n); else printf(y=0n); return 0
7、;运行结果:please input x:-7y=-1例2:小明在进一步的学习中了解到,根据车辆超速情况的不同,是有不同处罚的,(1)超过10%以内,不罚款,记3分;(2)超过10%以上未达20%的,罚50元,记3分;(3)超过20%以上未达50%的,罚200元,记3分;(4)超过50%以上未达70%的,罚1000元,记6分,可以并处吊销驾驶证;(5)超过70%以上的,罚2000元,记6分,可以并处吊销驾驶证。小明要实现这个功能,又该怎么编写代码呢?运行运行结果结果:输入车速:70 输入限速:80 遵守交规,赞!#include int main()float speed,limtspeed,
8、r;printf(输入车速:);scanf(%f,&speed);printf(输入限速:);scanf(%f,&limtspeed);r=(speed-limtspeed)/limtspeed;if(r0&r=0.1&r=0.2&r=0.5&r=0.7) printf(罚款2000,记6分,并可吊销驾照n); else printf(遵守交规,赞!n);return 0;例3:天猫超市双 11 推出以下优惠促销活动:购物满 50 元,打 9 折;购物满 100 元,打 8 折;购物满 200 元,打 7 折;购物满 300 元,打 6 折;编程计算当购物满 s 元时,实际付费多少?运行运行结
9、果结果:输入消费额:623实际付款额为:373.80元#include int main( ) float s,f; printf(输入消费额:n); scanf(%f,&s); if(s50) f = s; else if (s100) f = s*0.9; else if (s200) f = s*0.8; else if (s=0&c=A&c=a&c=48 & c=65 & c=97 & c0) if(ab)z=a; elsez=b; printf(“z=%d”,z); return 0;#include stdio.hint main() int n=3,z,a=5,b=2; if(n
10、b)z=a; elsez=b; printf(“z=%d”,z); return 0;Z=5Z=2if语句的嵌套02例2:对于任意的整数,判断其能否被3整除同时被5或者7整除,若成立输出”YES”,否则输出“NO”。#include int main()int num;printf(please input num:);scanf(%d,&num);if(num%3=0) if(num%5=0|num%7=0) printf(yesn); else printf(non); else printf(non);return 0;运行运行结果结果:please input num:344no请按任
11、意键继续. . .please input num:63yes请按任意键继续. . .if语句应注意的问题 (1)if表达式可以是逻辑表达式、关系表达式、赋值表达式,也可以为一个变量;(2)if(k=9),if(c)都是合法的,只要是非0即可执行对应语句;(3)表达式用括号括起来,后面不能加分号,后面跟的语句要加分号;(4)如果条件后面的语句不是单语句,需要用括起来,后面不能加分号;(5)嵌套关系中尽量按层次缩进,增加程序可读性。多分支switch语句03应用if条件语句可以很方便地实现条件分支,通常我们使用if语句来进行模糊条件匹配,但是当我们进行多个精确匹配时,如果用if语句来解决问题,程
12、序结构会显得很复杂,甚至凌乱。switch语句尤其擅长处理一些分支较多且很有规律的精确匹配问题,代码描述起来不仅方便而且直观。多分支switch语句03switch语句一般形式为:switch(表达式) case 常量1:语句1;break; case 常量2:语句2;break; case 常量n:语句n;break; default: 语句n+1; switch多分支选择结构流程图main( ) char grade; scanf (“%c”,&grade); switch(grade) case A: printf(“85-100n”); case B: printf(“70-84n”)
13、; case C: printf(“60-69n”); case D: printf(“60”); default: printf(“Errorn”); inputBoutput: 70-84 60-69 60 Errorprintf(“ 7084”); break;实例1:2703多分支switch语句#includeint main( ) char grade; scanf (“%c”,&grade); switch(grade) case A: printf(“85-100n”);break; case B: printf(“70-84n”); break; case C: printf
14、(“60-69n”); break; case D: printf(“60”); break; default: printf(“Errorn”); return 0; inputBoutput: 70-842803多分支switch语句(1)表达式只能是顺序类型(除了实型以外的简单类型),)表达式只能是顺序类型(除了实型以外的简单类型),它的一个取值只能在所有值表中出现一次。它的一个取值只能在所有值表中出现一次。switch(a) case 1:printf(“level 1”);break; case 2:printf(“level 2”);break; case 3:printf(“le
15、vel 3”);break; case 4:printf(“level 4”);break; case 5:printf(“level 5”);break; case 2:printf(“level 0”);break;在值表中,2出现了两次2903多分支switch语句(2)如果某个分支语句结束后,出现了)如果某个分支语句结束后,出现了break语句,则语句,则程序跳出程序跳出分支语句分支语句;如果如果某个分支没有出现某个分支没有出现break语句,则会语句,则会自动执行自动执行后续的语句。后续的语句。switch(a) case 1:printf(“level 1n”);break; ca
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四章 选择结构教学课件 第四 选择 结构 教学 课件
限制150内