if选择结构程序设计.ppt

上传人:本田雅阁 文档编号:2201668 上传时间:2019-03-03 格式:PPT 页数:44 大小:240.01KB
返回 下载 相关 举报
if选择结构程序设计.ppt_第1页
第1页 / 共44页
if选择结构程序设计.ppt_第2页
第2页 / 共44页
if选择结构程序设计.ppt_第3页
第3页 / 共44页
亲,该文档总共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、:从键盘输入一个正数则输出 “这是正数”。输入一个零或负数则不输出任何信息。,#include main() int a; scanf(“%d”, ,a0,输出这是正数,结束,真,假,例1:输入两个正整数,输出其中较大的数。,#include main() int a,b,max; scanf(“%d,%d”, ,maxb,真,max=b,假,例2:从键盘输入一个字符,判断是否英文字母,是输出yes,不是英文字母不输出任何信息。,问题的关键是If 条件的设置 变量c满足英文字母的条件是 a到z 或A到Z 用表达式 c=a & c=A & c=Z,程序,#include main() char

3、c; c=getchar(); if(c=a ,c=a & c=A & c=Z,printf(“yes”),真,假,4.1.2 if else格式,格式 if (表达式) 语句1 else 语句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=

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

5、,条件的设置 x0,X0,Y=x+5,Y=x-5,真,假,程序,#include main() 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 语句的嵌套有两种格

6、式 (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(表达式2) 语句2,4.4.2 else 子句中嵌套,表达式1,表达式2,语句2,语句3,语句1,真,真

7、,假,假,结束,例6:求分段函数的函数值,y=,1 (x0),0 (x=0),-1 (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

8、 子句都不会产生二义性。尽量在else中嵌套。,练习:从键盘输入学生成绩,如果=90输出“优秀”,6089输出“良好”,=60输出“不及格”,#include main() float s ; printf(“请输入学生成绩:n“); scanf(“%f“, ,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,功能: 当前面条件为假时,检测后边的条件,当前面条件为真时不检测后边的条件。因此多条件中

9、只有一个为真时,只执行一个操作。不要以为前面条件为真还检测后边的条件,这样就是实现多操作了。 应该是多条件中只有一个是真,只执行一个操作。,格式: if (表达式1) 语句1 else if(表达式2) 语句2 else if (表达式3) 语句3 else if(表达式n) else 语句n,流程图,真,真,真,真,假,假,假,例8,从键盘输入学生百分制成绩,输出相应的等级。 如果90分以上输出“优秀!”; 8089分输出“良好!”;7079分输出“中等!”;6069分输出“及格!”; 60分以下输出“不及格”。 分析:多条件中选一个。,程序,main() float s; printf(“

10、n input s:”); scanf(“%f”, ,条件进一步简化 s=80 & s=80,课堂练习,从键盘输入一个学生等级成绩,成绩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整除。满足其中一个条件时这个年

11、份是闰年。,main( ) int year; scanf(“%d”, ,例如:某商场销售商品,实行按比例优惠,优惠率 如下,货款在某200元以下不优惠,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元以下不征税,#include main() float price,tax=0; printf(“input price:n”); scanf(“%f”, ,上例:如果不分段征税,如高于10000元的都按5%,高于5000元都按3%,高于1000元都按2%征收。,main() float price,tax; scanf(“%f”, ,从键盘输入一个字符,判断它是英文?数字?空格?其他字符?并输出相应信息。,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1