if选择结构程序设计.ppt

上传人:wuy****n92 文档编号:79021749 上传时间:2023-03-19 格式:PPT 页数:44 大小:219.50KB
返回 下载 相关 举报
if选择结构程序设计.ppt_第1页
第1页 / 共44页
if选择结构程序设计.ppt_第2页
第2页 / 共44页
点击查看更多>>
资源描述

《if选择结构程序设计.ppt》由会员分享,可在线阅读,更多相关《if选择结构程序设计.ppt(44页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、 第四章第四章 选择结构程序设计选择结构程序设计宋秀琴内蒙古科技大学选择结构程序选择结构程序 程序的流程由多路分支组成,在程序的一次执行过程中,根据不同的情况,只有一条支路被选中执行,而其它分支上的语句被直接跳过。在C语言中选择是用if语句和系统提供的switch语句实现的。4.1 if语句的两种形式1、if(表达式)语句2、if(表达式)语句1 else 语句 2 简称 if-else双分支 单分支 4.1.1 if(表达式)语句 格式:if(表达式)语句 功能:当表达式的值为1(真)时执行语句,表达式的值为0(假)时跳过(不执行)语句。表达式为:常量表达式、关系表达式、逻辑表达式等 流程图

2、表达式 语句假真例如:从键盘输入一个正数则输出“这是正数”。输入一个零或负数则不输出任何信息。#includemain()int a;scanf(“%d”,&a);if(a0)printf(“这是正数”);a0输出这是正数结束真假 例1:输入两个正整数,输出其中较大的数。#include main()int a,b,max;scanf(“%d,%d”,&a,&b);max=a;if(maxb)max=b;printf(“max=%d”,max);max=a&c=A&c=Z程序#include main()char c;c=getchar();if(c=a&c=A&c=a&c=A&cb)max=

3、a;else max=b;if(ab)printf(“%d”,a);else printf(“%d”,b);abmax=amax=b真假例4:从键盘输入一个字符,判断是否英文字母,是输出yes,不是英文字母输出no。(上例)#include main()char c;c=getchar();if(c=a&c=A&c=Z)printf(“nyes”);else printf(“n no”);两种if结构的比较#include main()char c;c=getchar();if(c=a&c=A&c=Z)printf(“nyes”);#include main()char c;c=getchar

4、();if(c=a&c=A&c0 y=x-5 x0X0Y=x+5Y=x-5真假程序n#includen main()n float x,y;n scanf(%f,&x);n if(x0)n y=x+5;n printf(%f,y);n n else n y=x-5;n printf(n%f,y);n n复合语句复合语句课堂练习:从键盘输入两个数,按着由小到大的顺序输出 问题的关键:如果ab,交换a和b的值。否则不用交换。4.3 条件表达式与if 语句n 当if语句中表达式为真或为假时都给同一个变量赋值时,可以用条件表达式表示。n max=(ab)?a:bn 或n y=(x0)?(x+5):(x

5、-5);4.4 if 语句的嵌套nIf语句中可以是任何合法的语句,也可以是if语句,当if语句中再有if语句称为if语句的嵌套。nif 语句的嵌套有两种格式 (1)在if子句中嵌套 (2)在else子句中嵌套 4.4.1 if 子句中嵌套格式1 if(表达式1)if(表达式2)语句1 else 语句2 else 语句3 格式2 if(表达式1)if(表达2)语句1 else 语句2 不可少,内嵌的if中不带else内嵌表达式1表达式2语句1语句2语句3真真假假结束 格式1:if(表达式1)语句1 else if(表达式2)语句2 else 语句3格式2:if(表达式1)语句1 else if(

6、表达式2)语句2 4.4.2 else 子句中嵌套表达式1表达式2语句2语句3语句1真真假假结束例6:求分段函数的函数值n y=1 (x0)0 (x=0)-1 (x=0 程序 main()int x,y;scanf(“%d”,&x);if(x=0)if(x0)y=1;else y=0;else y=-1;printf(“y=%dn”,y);x=0 x0y=1y=0y=-1真真假假结束n y=n条件合并为x0)0 (x=0)-1 (x0)y=1;else if(x=0)y=0;else y=-1;printf(“y=%d”,y);X0X=0 y=0 y=-1 y=1真真假假结束注意:1、内嵌的子

7、句以缩进两个字符格式输入。2、C语言中else 总是与它 上面最近的if语句配对。所以在if子句中内嵌的if语句如果没有else,则一定把内嵌的if语句用括起来。if()if()else 3、一般在else 子句中内嵌的if无论有无else 子句都不会产生二义性。尽量在else中嵌套。练习:从键盘输入学生成绩,如果=90输出“优秀”,6089输出“良好”,=60输出“不及格”#include main()float s;printf(“请输入学生成绩:n);scanf(%f,&s);if(s=90)printf(优秀n);else if(s=60)printf(良好n);else printf

8、(不及格n);4.4.3 多分支选择结构 当多条件中选择一种操作时用 if(表达式1)语句1 else if(表达式2)语句2 else if(表达式3)语句3 else if(表达式n)语句n else 语句n+1 简称为 if else if else功能:当前面条件为假时,检测后边的条件,当前面条件为真时不检测后边的条件。因此多条件中只有一个为真时,只执行一个操作。不要以为前面条件为真还检测后边的条件,这样就是实现多操作了。应该是多条件中只有一个是真,只执行一个操作。格式:if(表达式1)语句1 else if(表达式2)语句2 else if(表达式3)语句3 else if(表达式n

9、)else 语句n流程图表达式1表达式2语句2语句1表达式3语句3表达式n语句n语句n+1真真真真假假假例8 从键盘输入学生百分制成绩,输出相应的等级。如果90分以上输出“优秀!”;8089分输出“良好!”;7079分输出“中等!”;6069分输出“及格!”;60分以下输出“不及格”。分析:多条件中选一个。程序 main()float s;printf(“n input s:”);scanf(“%f”,&s);if(s=90)printf(“n优秀!”);else if(s=80&s=70&s=60&s=80&s=80s=90优秀s=80良好s=70中等及格s=60不及格真真真真假假假假课堂练

10、习n从键盘输入一个学生等级成绩,成绩A输出“=90”;成绩B输出“8089”;成绩C输出“7079”;成绩D输出“6069”;否则输出“60”。例9:从键盘输入三个整数,按着由大到小的顺序输出来。main()int a,b,c,t;scanf(“%d%d%d”,&a,&b,&c);if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=a;if(b500)cost=0.2;n else if(num400)cost=0.15;n else if(num300)cost=0.1;n else if(num200)cost=0.075;n else cost=0;n num=num*(

11、1-cost);n printf(“%7.2f”,num);n例:征税问题:价格高于10000元的税率为5%,高于5000元税率为3%,高于1000元税率为2%,低于1000元不征税。请输入货物价格,输出税金。提示:各段采用不同税率进行征收。如:贷款为53000元,其中43000元以上按5%征收,高于5000元按3%征收,高于1000元按2%,1000元以下不征税#include main()float price,tax=0;printf(“input price:n”);scanf(“%f”,&price);if(price10000)tax=tax+(price-10000)*0.05;

12、price=10000;括号不可省略括号不可省略 if(price5000)tax=tax+(price-5000)*0.03;price=5000;if(price1000)tax=tax+(price-1000)*0.02;printf(“tax=%7.2f”,tax);上例:如果不分段征税,如高于10000元的都按5%,高于5000元都按3%,高于1000元都按2%征收。n main()n float price,tax;n scanf(“%f”,&price);n if(price10000)tax=0.05*price;n else if(price5000)tax=0.03*price;n else if(price1000)tax=0.02*price;n else tax=0;n printf(“%f”,tax);n 从键盘输入一个字符,判断它是英文?数字?空格?其他字符?并输出相应信息。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com