收藏 分享(赏)

if选择结构程序设计.ppt

上传人:hwpkd79526 文档编号:9435029 上传时间:2019-08-07 格式:PPT 页数:44 大小:240KB
下载 相关 举报
if选择结构程序设计.ppt_第1页
第1页 / 共44页
if选择结构程序设计.ppt_第2页
第2页 / 共44页
if选择结构程序设计.ppt_第3页
第3页 / 共44页
if选择结构程序设计.ppt_第4页
第4页 / 共44页
if选择结构程序设计.ppt_第5页
第5页 / 共44页
点击查看更多>>
资源描述

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

2、输入一个正数则输出 “这是正数”。输入一个零或负数则不输出任何信息。,#include main() int a;scanf(“%d”, ,a0,输出这是正数,结束,真,假,例1:输入两个正整数,输出其中较大的数。,#includemain() int a,b,max;scanf(“%d,%d”, ,maxb,真,max=b,假,例2:从键盘输入一个字符,判断是否英文字母,是输出yes,不是英文字母不输出任何信息。,问题的关键是If 条件的设置变量c满足英文字母的条件是 a到z 或A到Z 用表达式 c=a & c=A & c=Z,程序,#includemain() char c;c=getch

3、ar();if(c=a ,c=a & c=A & c=Z,printf(“yes”),真,假,4.1.2 if else格式,格式if (表达式) 语句1else 语句2,功能:当表达式的值为1时执行语句1而不执行语句2,当表达式的值为0时执行语句2,而不执行语句1,不要认为当表达式的值为1时执行语句1,执行完语句1接着执行语句2。,称为双分支选择结构,流程图,假,只执行一条语句,例3 输出两个数中较大数(上例),if(ab) max=a;else max=b;,if(ab) printf(“%d”,a);else printf(“%d”,b);,ab,max=a,max=b,真,假,例4:从

4、键盘输入一个字符,判断是否英文字母,是输出yes,不是英文字母输出no。(上例),#includemain() char c;c=getchar();if(c=a ,两种if结构的比较,#includemain() char c;c=getchar(); if(c=a ,#includemain() char c;c=getchar();if(c=a ,说明:,if 和else 后边默认的只能识别一条语句,如有两条语句需要同时执行时要加一个花括号 组成一条复合语句,否则只能执行一条单语句。,例5 求分段函数的值,x+5 x0y= x-5 x=0,条件的设置 x0,X0,Y=x+5,Y=x-5,

5、真,假,程序,#includemain() float x,y;scanf(“%f“, ,复合语句,复合语句,课堂练习:从键盘输入两个数,按着由小到大的顺序输出,问题的关键:如果ab,交换a和b的值。否则不用交换。,4.3 条件表达式与if 语句,当if语句中表达式为真或为假时都给同一个变量赋值时,可以用条件表达式表示。max=(ab)?a:b或y=(x0) ?(x+5) : (x-5);,4.4 if 语句的嵌套,If语句中可以是任何合法的语句,也可以是if语句,当if语句中再有if语句称为if语句的嵌套。 if 语句的嵌套有两种格式(1)在if子句中嵌套(2)在else子句中嵌套,4.4.

6、1 if 子句中嵌套,格式1 if (表达式1) if(表达式2) 语句1else 语句2else 语句3格式2 if (表达式1)if(表达2) 语句1 else 语句2 不可少, 内嵌的if中不带else,内嵌,表达式1,表达式2,语句1,语句2,语句3,真,真,假,假,结束,格式1:if(表达式1) 语句1else if(表达式2) 语句2else 语句3 格式2:if(表达式1) 语句1else if(表达式2) 语句2,4.4.2 else 子句中嵌套,表达式1,表达式2,语句2,语句3,语句1,真,真,假,假,结束,例6:求分段函数的函数值,y=,1 (x0),0 (x=0),-1

7、 (x0),条件的合并:x=0,程序,main() int x,y;scanf(“%d”,y=条件合并为x=0,例7:求分段函数的函数值,1 (x0),0 (x=0),-1 (x0),main() int x,y;scanf(“%d”,注意:,1、内嵌的子句以缩进两个字符格式输入。 2、C语言中else 总是与它 上面最近的if语句配对。所以在if子句中内嵌的if语句如果没有else,则一定把内嵌的if语句用括起来。if( ) if ()else 3、一般在else 子句中内嵌的if无论有无else 子句都不会产生二义性。尽量在else中嵌套。,练习:从键盘输入学生成绩,如果=90输出“优秀”

8、,6089输出“良好”,=60输出“不及格”,#includemain() float s ;printf(“请输入学生成绩:n“);scanf(“%f“, ,4.4.3 多分支选择结构,当多条件中选择一种操作时用if (表达式1)语句1else if(表达式2)语句2else if(表达式3) 语句3 else if(表达式n) 语句nelse 语句n+1,简称为 if else if else,功能: 当前面条件为假时,检测后边的条件,当前面条件为真时不检测后边的条件。因此多条件中只有一个为真时,只执行一个操作。不要以为前面条件为真还检测后边的条件,这样就是实现多操作了。应该是多条件中只有

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

10、成绩A输出“=90”;成绩B输出“8089”;成绩C输出“7079”;成绩D输出“6069”;否则输出“60”。,例9:从键盘输入三个整数,按着由大到小的顺序输出来。,main() int a,b,c,t;scanf(“%d%d%d”, ,a中是最大数,b中是中数,c是最小数,不能使用if else if,例如:从键盘输入一个年份,判断是否闰年,闰年的条件是 1、年份能被4整除但不能被100整除, 2、年份能被4整除同时也能被400整除。满足其中一个条件时这个年份是闰年。,main( ) int year;scanf(“%d”,例如:某商场销售商品,实行按比例优惠,优惠率 如下,货款在某200

11、元以下不优惠,200元以上优惠7。5%,300元以上优惠10%,400元以上优惠15%,500元以上优惠20%。求应付货款。,Main() float num,cost;scanf(“%f”, ,例:征税问题:价格高于10000元的税率为5%,高于5000元税率为3%,高于1000元税率为2%,低于1000元不征税。请输入货物价格,输出税金。,提示:各段采用不同税率进行征收。如:贷款为53000元,其中43000元以上按5%征收,高于5000元按3%征收,高于1000元按2%,1000元以下不征税,#includemain() float price,tax=0;printf(“input price:n”);scanf(“%f”, ,上例:如果不分段征税,如高于10000元的都按5%,高于5000元都按3%,高于1000元都按2%征收。,main() float price,tax;scanf(“%f”,从键盘输入一个字符,判断它是英文?数字?空格?其他字符?并输出相应信息。,

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报