《C语言基础入门选择结构-if语句ppt课件.pptx》由会员分享,可在线阅读,更多相关《C语言基础入门选择结构-if语句ppt课件.pptx(78页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、程序设计基础 北京八维研修学院第9单元选择结构if语句第第1节节选择结构导入n春节回家使用选择结构可以解决导入如果 有1000元预算 选择坐飞机回家如果 有800元预算 选择坐高铁回家如果 有500元预算 选择拼车回家如果 有300元预算 选择坐大巴车回家1确定选择的条件2判断条件是否满足3根据判断结果,决定后续步骤n 选择的依据?本节课目标1. if选择结构的概念2. 单分支选择结构-if3. if语句使用规范4. 流程图及应用案例什么是if选择结构nif选择结构:if选择结构概念名最小的属种差(内涵)1、判断if条件2、根据判断结果执行后续操作同属的其它种switch选择结构判断if条件,
2、根据判断结果执行后续操作的选择结构。选择结构外 延if else-if单ifif else-if单分支if使用单分支选择结构-if语句实现为什么要用单分支选择if语句场景一:如果你在家,我就去拜访!场景二:如果考试不及格,就重修!自然语言:如果,就如何使用单分支ifn单分支if选择结构一般格式:if ( 表达式 ) 执行语句;表达式:指判断条件,真为1,假为0只有一条语句时,可以省略,但建议不省略单词:if,中文含义:如果练一练#include stdio.hvoid main() int a=3,b=5,c=7; /变量定义 if(ab)/判断a=b; c=a; if(c!=a)/判断c=b
3、; printf(%d,%d,%dn,a,b,c); 3,5,3考点:省略花括号输入一个数,判断能否被4整除或者能被7整除,并且不能被3整除,满足就打印出来。if选择结构应用一#include void main() int number; /变量定义 printf(请输入一个数: ); /提示输入一个数 scanf(%d,&number); /输入一个数 /判断是否满足条件 if (number%4=0|number%7=0) &number%3!=0 ) printf(%dn,number); /打印结果 如何使用if选择结构nif选择结构执行过程:if ( 表达式 ) 执行语句; 条件为
4、真(1)执行中的语句判断条件成立判断条件不成立if选择结构应用二n 任意输入两个数,输出最大值?void main()float num1=0,num2=0,max; /定义变量printf(请输入两个数:);scanf(%f%f,&num1,&num2); /输入 max=num1; /赋值num1最大 if(max=500&price=500&price=800) printf(“下次再购买!);导入本节课目标1. 双分支选择结构概念2. if-else语法格式3. if-else使用规范4. 流程图及应用案例5. if-else和if的互换如何使用if-else双分支选择结构nif-el
5、se选择结构一般格式:if ( 表达式 ) 语句1; else 语句2; 语句只有一条语句时,可以省略但建议不省略表达式:指判断条件单词:else,中文含义:那么、否则商场购买电冰箱,如果价格500800就买,否则不做考虑。#include void main( ) float price; /定义价格 printf(请输入价格:); /提示输入价格 scanf(%f,&price); /输入价格 if(price=500&price=80&scoret=85)|(scorez=90&scoree=550)if-else双分支选择结构应用二void main()int scorem; /小红的
6、面试成绩int scoret; /小红的技能测试成绩int scorez; /小红的综合成绩int scoree; /小红的英语六级成绩printf(“请输入小红的各个成绩:”); scanf(“%d%d%d%d”,&scorem,&scoret,&scorez,&scoree); /输入成绩 if (scorem=80&scoret=85)|(scorez=90&scoree=550) printf(恭喜小红,通过了公司的面试,被我公司录取!); elseprintf(很抱歉,感谢对我们公司的支持!);if-else双分支选择结构应用三void main() int number; /定义变
7、量printf(请输入一个数:);scanf(%d,&number); /输入 if(number%2=0) /判断偶数 printf(%d是偶数n,number);else /奇数 printf(%d是奇数n,number);printf(程序结束); /输出n 任意输入一个数,判断是奇数还是偶数?课堂编程n输入一个年份,判断该年份是否是闰年,如果是闰年,提示”该年份是闰年“,否则提示”该年份不是闰年“ 提示:闰年条件:1、能被4整除,但是不能被100整除,如2008年是闰年,2100是平年2、或者能被400整除,如2000年是闰年n要求:1、画程序流程图2、使用if-else双分支结构完成
8、代码 学生练习5分钟(sum-sale=0)if-else双分支选择结构应用四n 用户购买某商品,输入购买的数目,如果库存不足提示“抱歉,没有足够的库存”,否则提示“购买成功” 。最后输出剩余的库存数。购买成功的条件双分支选择结构:if-else购买成功的条件:目前库存数-用户购买的数目0,则库存够,否则不够if-else双分支选择结构应用四void main()int sum=100; /库存量int purchase; /购买量printf(“请输入要购买的商品数:“); scanf(“%d”,&purchase);if (sum-purchase0) /判断是否满足购买条件 printf
9、(“购买成功!n); printf(“库存剩余量是%dn”,sum-purchase);else /否则 printf(“抱歉,没有足够的库存n”“); printf(“库存剩余量是%dn”,sum);课堂编程n输入一个数,判断该数是否是水仙花,如果是,打印”该数是水仙花“,否则打印”该数不是水仙花数“。 提示:水仙花条件:1、该数是一个三位数2、该数的个位、十位、百位的立方和,和该数本身相等。n要求: 1、画程序流程图。 2、使用if-else双分支结构完成代码 。学生练习5分钟练一练#include stdio.h void main() int a=-1,b=1,k; /变量定义 if(
10、+a0)&!(b-=0) /判断条件 printf(%d,%dn,a,b); else /否则 printf(%d,%dn,b,a);1 , 0考点:1、双分支执行情况 2、逻辑与短路if-else和if互换n if-else和两个单if等价吗?if ( 表达式1 ) 语句1; else 语句2; if ( 表达式1 ) 语句1; if( !表达式1) 语句2; 两者执行效率一样吗课堂编程案例1:用两个单if语句完成输入一个年份,判断该年份是否是闰年。案例2:用两个单if语句完成输入一个数,判断该数是否是水仙花。案例3:用两个单if语句完成输入两个数,输出两个数中的较小值。学生练习5分钟练一练
11、n读程序看结果,输入 5 和 2 #includevoid main() int a,b,k; /定义变量 printf(输入两个数:); scanf(%d%d,&a,&b); /输入 k=a; /赋值 if(a=90为等级A2、成绩=80为等级B3、成绩=70为等级C4、成绩=60为等级D5、成绩=90) printf(成绩等级为A); if(score=80) printf(成绩等级为B );if(score=70) printf(成绩等级为C );导入将成绩分成几个连续区间判断单个if或if-else无法完成多个if选择结构很麻烦本节课目标1.什么是多分支选择结构2.if-else if
12、语法格式3.if-else if使用规范4.流程图及应用案例5.if-else if和if的互换如何使用if-else if选择结构n多重if选择结构,一般格式if(表达式1) 语句1; else if(表达式2) 语句2; else if(表达式3) 语句3; else 语句n; 所有的代码块只有一条语句时,都可以省略,但建议不省略else if()的数目任意最后一个else可以省略有则必须放在else if后面表达式:指判断条件if-else if选择结构应用一n成绩分级案例流程图 真真真真真真语句语句2语句语句3假假假假成绩成绩=80成绩成绩=70假假成绩成绩=60语句语句4语句语句5真
13、真语句语句1成绩成绩=90假假int score; /定义变量printf(请输入一个成绩:); scanf(“%d”,&score); /输入成绩if(score=90) printf(成绩等级为A 恭喜你考试通关); else if(score=80) printf(成绩等级为B); else if(score=70) printf(成绩等级为C); else if(score=60) printf(成绩等级为D); else printf(成绩等级为E); if-else if选择结构应用一大于等于80分,小于90分大于等于70分,小于80分小于60分大于等于60分,小于70分大于等于9
14、0分如何使用if-else if多分支选择结构nif-else if多分支选择结构的执行过程if(表达式1) 语句1; else if(表达式2) 语句2; else if(表达式3) 语句3; else 语句n; else if()的数目任意满足条件1执行不满足条件1,满足条件2执行不满足条件1,不满足条件2,满足条件3执行条件都不满足,才执行判断条件成立判断条件不成立判断条件成立判断条件不成立判断条件不成立判断条件成立判断条件不成立判断条件不成立判断条件不成立if-else if选择结构应用二n 特色小吃是中国饮食生活的主要内容之一。每个地区都有着其独特的小吃,被称为当地的特色小吃。n 请
15、根据提示完成案例,打印价格。使用多重if语句实现。提示:输入编号1:对应风味酱干 (45元)输入编号2:对应廖排骨 (32元)输入编号3:对应驴肉火烧 (26元)输入编号4:对应狗不理 (18元)if-else if选择结构应用二if-else if选择结构应用二 float price1=45,price2=32,price3=28,price4=18;int n; /定义变量 printf(nntt 特色小吃-百样经典n); /输出 printf(tt 1:湖南平江-风味酱干n); /输出 printf(tt 2:四川-廖排骨n); /输出 printf(tt 3:河北-驴肉火烧n); /
16、输出 printf(tt 4:天津-狗不理n); /输出 /根据功能编号输出相应信息 printf(请输入您要选购的特色小吃序号:); scanf(%d,&n); if(n=1) /判断编号是否是1 printf(您选购了湖南平江风味酱干,单价是%.2fn,price1); else if(n=2) /判断编号是否是2 printf(您选购了四川廖排骨,单价是%.2fn,price2); else if(n=3) /判断编号是否是3 printf(您选购了河北驴肉火烧,单价是%.2fn,price3); else if(n=4) /判断编号是否是4 printf(您选购了天津狗不理,单价是%.
17、2fn,price4); else /编号是其他 printf(编号不存在!n);课堂编程n八维图文打印社,可以数码打印、彩色激光打印和3D打印,数码打印每页0.1元,彩色打印每页1.2元,3D打印每页10.5元。n要求:1、输入打印类型,打印页数和打印份数。2、判断选择采用哪种机型打印,注意加注释。3、根据所选择的打印类型,计算需要支付的打印费用(考虑健全性)。4、先画出程序流程图,再完成代码。学生练习5分钟课堂编程#include stdio.hvoid main() /定义变量存储打印类型,份数及页码int type,page,num; float sum=0;/显示主界面 printf
18、(nntt =北京永兴图文打印社=n); printf(tt 1.数码打印机n); printf(tt 2.彩色激光打印机n); printf(tt 3.3D打印机n); /提示并输入相关信息 printf(请输入打印机类型:); scanf(%d,&type); printf(请输入打印页数:); scanf(%d,&page); printf(请输入打印的份数:); scanf(%d,&num); /计算打印费用. if(type=1) printf(“数码打印%d页%d份需支付打印费用%f元 n,page,num,page*num*0.1); else if(type=2) printf
19、(“激光打印%d页%d份需支付打印费用%f元 n,page,num,page*num*1.2); else if(type=3) sum=page*num*10.5; if(sum=50) sum=sum-5; printf(数码打印%d页%d份需支付打印费用%f元n,page,num,sum); else printf(输入的打印机类型不匹配);if-else if选择结构应用三n2018年个人收入所得税进行了税率调整,使用超额累进税率的计算方法,完成个人所得税计算。1、缴税=全月应纳税所得额*税率-速算扣除数2、扣除标准:个税按5000元/月的起征标准算级数全月应纳税所得额(含税级距)税率
20、(%) 速算扣除数1不超过3,000元302超过3,000元-12,000元的部分102103超过12,000元-25,000元的部分2014104超过25,000元-35,000元的部分2526605超过35,000元-55,000元的部分3044106超过55,000元-80,000元的部分3571607超过80,000元的部分4515160例:某人的工资收入为7500元7500-5000=2500,即(工资收入减去起征点)2500税率为3%,速算扣除数为02500*3%-0参考解决方案:用户输入工资根据工资计算出全月应纳税所得额使用多重if判断全月应纳税所得额的范围,确定税率和速算扣除数
21、使用公式计算缴税数额缴税=全月应纳税所得额*税率-速算扣除数个人所得税为:(7500-5000)0.03-0=75(元)if-else if选择结构应用三if-else if选择结构应用三 int salary; /定义变量 printf(请输入用户工资:);scanf(“%d”,&salary); /输入工资if(salary-3500=80000) /条件判断 printf(应缴纳个人所得税为:%d,(salary-8000)*0.45-13505); else if(salary-3500=55000) printf(应缴纳个人所得税为:%d,(salary-8000)*0.35-550
22、5); else if(salary-3500=35000) printf(应缴纳个人所得税为:%d,(salary-8000)*0.30-2755); else if(salary-3500=9000) printf(应缴纳个人所得税为:%d,(salary-8000)*0.25-1005); else if(salary-3500=4500) printf(应缴纳个人所得税为:%d,(salary-8000)*0.20-555); else if(salary-3500=1500) printf(应缴纳个人所得税为:%d,(salary-8000)*0.10-105); else prin
23、tf(应缴纳个人所得税为:%d,(salary-8000)*0.03-0);课堂编程n歌神张学友2018巡回演唱会12月28在苏州奥林匹克体育中心体育馆,作为张学友的铁杆粉丝,编程实现选择观票类型,输出对应的票费。n思路分析1、使用多重if语句,实现选票并输出对应的应付金额。2、先画程序流程图,再完成代码,注意加注释。3、A类票 680元 B类票980元4、C类票1680元 D类票1980元学生练习5分钟课堂编程/定义变量存储选票类型 char type;/输入票务类型printf(请输入您要观演的票务类型,可供选择的类型有ABCDV五种:);scanf(%c,&type);/多重if语句实现
24、判断,根据相应的票务类型输出应付票款if(type=A)printf(您选择的观演票务类型是A类,需支付票款680元); else if(type=B) printf(您选择的观演票务类型是B类,需支付票款980元); else if(type=C) printf(您选择的观演票务类型是C类,需支付票款1680元); else if(type=D) printf(您选择的观演票务类型是D类,需支付票款1980元); else printf(输入的观演票务类型有误); 练一练#include stdio.h void main() int x,y,z; /定义变量 x=1;y=2;z=3; /赋
25、值 if(xy) /判断 if(xz) /判断 printf(%d,x); else /否则 printf(%d,y); printf(%d,z);3考点:多if执行情况if-else if和if互换n if-else if和多个单if互换两者执行效率和结果一样吗if(条件1) 语句1; else if(条件2) 语句2; else 语句n; if(条件1) 语句1; if(条件2) 语句2; if( ! 条件1 & ! 条件2& ! 条件(n-1)) 语句n; if-else if和if互换案例#include stdio.h void main() int x=90; /定义变量 if(x
26、50) /判断是否大于50 printf(“x=%dn”,x);if(x60) /判断是否大于60printf(“x=%dn”,x);if(x70) /判断否则大于70 printf(“x=%dn”,x);#include stdio.h void main() int x=90; /定义变量 if(x50) /判断是否大于50 printf(“x=%dn”,x);else if(x60) /否则,再判断是否大于60printf(“x=%dn”,x);else /否则printf(“x=%dn”,x);内容小结控制结构单分支双分支多分支外延if-else if执行过程和if互换流程图画法一般格
27、式第第4节节选择嵌套导入使用嵌套if选择结构语句实现为什么要学嵌套 if 选择结构场景一:乘机,有票可以乘,没票乘不了,带充电宝10000mA以下可以带,10000mA以上不可以带?场景二:购物,品牌服装双11做活动,消费=1299打八折,如果是本店会员,还可以享受送精美礼品一份。导入n小红参加校园歌手大赛,85分以上晋级,否则淘汰,晋级的选手中,95分以上可以直接进入决赛,否则继续参加晋级赛。n思路分析1、首先判断是否能够晋级2、晋级的情况下,判断直接进入决赛,还是继续参加晋级赛使用嵌套 if 选择结构本节课目标1.什么是选择嵌套2.选择嵌套的一般格式3.流程图及应用案例if(条件1) if
28、(条件2) 语句1; else 语句2; else 语句3;如何使用嵌套if 选择结构假假真真假假真真条件条件1条件条件2语句语句3语句语句2语句语句1外层条件内层条件内层选择结构n使用嵌套 if 选择结构解决歌手比赛的问题if(score85)if(score95)printf(进入决赛!); else printf(“继续参加晋级赛!);elseprintf(很遗憾,您被淘汰了!); 嵌套if选择结构应用一内层选择结构外层选择结构嵌套if选择结构应用二n 舞蹈是一种表演艺术,以有节奏的动作为主要表现手段的艺术形式。n 编程实现小彩旗选择舞蹈课程的过程。1.先输入编号选择相应舞蹈。2.每种舞
29、蹈里有选择是否付款功能,输入编号1确认付款,输入0退出。提示:编号1:国际民俗舞蹈 1050元编号2:霹雳舞 800元编号3:古典芭蕾舞 1500元编号4:拉丁舞 2300元if-else if选择结构应用二if-else if选择结构应用二float price1=1050,price2=800,price3=1500,price4=2300;int n,confirm; /定义变量 printf(nntt 舞动青春n); /输出显示界面 printf(tt 1:国际民俗舞蹈n); printf(tt 2:霹雳舞 n); printf(tt 3:古典芭蕾舞n); printf(tt 4:拉丁
30、舞n); printf(请输入课程编号:);/根据功能编号输出相应信息 scanf(%d,&n); if(n=1) /外层判断 printf(“您选择了国际民俗舞蹈,是否确认付款1/0:); scanf(%d,&confirm); if(confirm=1) /内层判断 printf(该课程需支付学习费用%.2f元,price1); else printf(欢迎您选购舞动青春课程); else if(n=2) /外层判断 printf(“您选择了霹雳舞,是否确认付款1/0:); scanf(%d,&confirm);if(confirm=1) /内层判断 printf(该课程需支付学习费用%.
31、2f元,price2); else printf(欢迎您选购舞动青春课程); else if(n=3) /外层判断 printf(“您选择了古典芭蕾舞,是否确认付款1/0:); scanf(%d,&confirm); if(confirm=1) /内层判断 printf(该课程需支付学习费用%.2f元,price3); else printf(欢迎您选购舞动青春课程); else if(n=4) /外层判断 printf(“您选择了拉丁舞,是否确认付款1/0:); scanf(%d,&confirm); if(confirm=1) /内层判断 printf(该课程需支付学习费用%.2f元,pr
32、ice4); else printf(欢迎您选购舞动青春课程); 课堂编程n实训前最后一个月考试结束,所有考试通过的学生会按照学号分到实训1班和实训2班,学号为奇数,进入实训1班,学号为偶数,进入实训2班,考试通不过的,提示不能升入实训。(先画出程序流程图)n思路分析1、学生输入考试机试成绩、理论成绩和学号。2、首先判断考试是否通过3、如果考试通过,再次判断学号是奇数还是偶数,奇数进入实训1班,偶数进入实训2班学生练习5分钟if、if-else和if-else if选择结构对比执行过程对比判断条件成立判断条件成立判断条件成立判断条件不成立判断条件不成立判断条件不成立else可以看成if选择结构
33、else if可以看成if选择结构if单分支选择结构if-else双分支选择结构if-else if双分支选择结构if-else 或 if-else if都可以转化成多个if选择结构注意事项一else与【前面的】【最近的】【尚未匹配的】if 搭配if( )if( )elseelse注意事项二表达式的值为1,或结果为1,条件即为真;表达式的值为0,或结果为0,条件即为假。if(1)printf(“666”);elseprintf(“777”);if(0)printf(“666”);elseprintf(“777”);输出结果“666”输出结果“777”常见错误一int a,b,max=0;pri
34、ntf(“请输入a和b的值:”);scanf(“%d%d”,&a,&b); / 输入8和10if(ab) ; max=a; printf(“max=%dn”,max);a=8 b=10,max=0ab不成立max的值为什么是8呢?分号是结束标志if后的圆括号后+分号;程序不报错,但是得不到想要的结果常见错误二int a,b;printf(“请输入a和b的值:”);scanf(“%d%d”,&a,&b);if(ab) max=a; printf(“max=%dn”,max);变量在使用之前一定要先定义或声明常见错误三int a,b;printf(“请输入a和b的值:”);scanf(“%d%d”
35、,&a,&b); / 输入3和4或4和4if(a=b)printf(“好好学习n”);=是赋值运算符关系判断,要使用关系运算符: = = = !=输入a=3 b=4及a=4,b=4为什么都会输出”好好学习”?课堂编程n实现简易运算器功能。n思路分析1、输入操作数和运算符2、使用if选择结构判断运算符3、实现相应运算,输出结果学生练习5分钟课堂编程int num1=0,num2=0,oper=0; /定义变量 printf(请输入第一个操作数n); /提示信息 scanf (“%d”,&num1); /输入第一个操作数printf(请输入算术运算符n);printf(1.+t2.-t3.*t4.
36、/tn);scanf(“%d”,&oper); /输入运算符printf(请输入第二个操作数n);scanf (“%d”,&num2); /输入第二个操作数if(oper=1) /判断是否是1printf(两数相加的结果是:%dn,num1+num2);else if(oper=2) /判断是否是2printf(两数相减的结果是:%dn,num1-num2);else if(oper=3) /判断是否是3printf(两数相乘的结果是:%dn,num1*num2);else if(oper=4) /判断是否是1if (num2=0) /除数为0 printf(除数不能为零!请重新操作!);else /除数不为0 printf(两数相除的结果是:%dn,num1/num2);elseprintf(您输入的编号有误,请重试.);内容小结控制结构内涵判断给定条件,根据判断结果来控制程序流程的控制结构单分支双分支多分支外延If执行过程语句格式if-else执行过程和if互换流程图画法一般格式if-else if执行过程和if互换流程图画法一般格式创新教育 引领未来谢谢聆听