第四章 分支结构.ppt_第1页
第四章 分支结构.ppt_第2页
第四章 分支结构.ppt_第3页
第四章 分支结构.ppt_第4页
第四章 分支结构.ppt_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第四章,条件结构,2,回顾,表达式是操作数和运算符的集合 关系运算符运用测试两个操作数之间的关系 条件结构解决了程序种需要根据不同情况进行判断的情况 逻辑运算符用于组合多个条件( printf(n input two numbers: ); scanf(%d%d, ,简单if语句的示例1-3,56,78,78,请输入两个数:56 78,判断出最大数: 78,7,#include void main() int num; printf(n请输入一个整数:); scanf (%d, ,if-else语句的示例1-4,57,请输入一个整数:57,57 是一个奇数。,8,有胡萝卜吗?,有黄瓜吗?,制作

2、胡萝卜沙拉,有,多重条件判断2-1,有,制作黄瓜沙拉,制作黄瓜沙拉,没有,没有,9,多重if,要处理多重条件判断的情况,需要使用多重条件结构,多重条件结构2-2,嵌套 if,switch结构,多重条件结构,10,if (表达式1) 语句1; else if (表达式2) 语句2; else if (表达式3) 语句3; . . else 语句n;,多重 if 结构是if-else 的另一种形式 ,这种形式也称为阶梯式 if-else-if,多重 if 结构2-3,真,假,真,假,真,假,11,多重 if 结构2-4,12,多重 if 结构示例2-5,问题描述: 编写一个程序,根据用户输入的期末

3、考试成绩,输出相应的成绩评定信息。成绩大于等于90分输出“优”;成绩大于等于80分小于90分输出“良”;成绩大于等于60分小于80分输出“中”;成绩小于60分输出“差”。,#include void main() float grade; printf(n 请输入期末考试成绩: ); scanf(%f, ,59,请输入期末考试成绩:59,差,13,当if语句中的执行语句又是if语句时,则构成了if 语句嵌套的情形。,嵌套 if 结构3-1,if (表达式1) if (表达式2) if (表达式3) 语句; else 语句;,真,真,真,假,14,if (x 0) if (y 1) z = 1;

4、 else /*这个 else 部分属于哪个 if?*/ z = 2;,嵌套 if 结构3-2,每个 else 部分总属于前面最近的那个缺少对应的 else 部分的 if 语句。提倡使用大括号括起来以避免看起来有二义性。 在嵌套内的if语句可能又是if-else型的,这将会出现多个if和多个else重叠的情况,这时要特别注意if和else的配对问题。,?,15,#include void main() int a,b; printf(n 请输入 A 和 B 的值: ); scanf(%d%d, ,嵌套 if 结构的示例3-3,68,93,输出: AB,16,switch 结构 4-1,prin

5、tf(“这是迈克尔,身高 180cm,加利福尼亚第 12 大街”);,printf(“这是丹尼尔,身高 193cm,现居住地不明,1998 年 12 月 12 日在佛罗里达被捕”);,printf(“这是吉姆,身高 175cm, 墨西哥州海鸥路弗罗拉公寓,于 2003 年 11 月 1 日在新泽西因抢银行被捕”);,default:,printf(“未发现匹配项。对不起!”);,停止搜索,停止搜索,停止搜索,停止搜索,警察记录,不是,这是吉姆,身高 175cm, 墨西哥州海鸥路弗罗拉公寓, 于 2003 年 11 月 1 日在新泽西因抢银行被捕,不是,是,17,switch-case 语句是多

6、路判断语句 switch 语句计算条件表达式并对照多个常数值进行检查,switch 结构 4-2,switch (表达式) case 常量 1: 语句1; break; case 常量 2: 语句2; break; case 常量 n: 语句n; default: 语句n+1; ,计算表达式的值,如果等于常量1,如果等于常量2,如果没有找到匹配的值,如果等于常量n,18,switch 结构 4-3,在使用switch结构时应注意以下几点: 在case后的各常量表达式的值不能相同,否则会出现错误; 在case后,允许有多个语句,可以不用括起来; 每个case语句后都必须有一个break语句,否则

7、会出现错误; 各case和default子句的先后顺序可以变动,而不会影响程序执行结果; default子句可以省略;,19,switch 结构示例4-4,问题描述: 用户输入一个数字根据这个数字输出是星期几。,main() int a; printf(input integer number:); scanf(%d, ,5,请输入一个数字:5,输出结果是:Friday,20,多重if结构和switch结构都可以用来实现多路分支 多重if结构用来实现两路、三路分支比较方便,而switch结构实现三路以上分支比较方便 在使用switch结构时,应注意分支条件要求是整型表达式,而且case语句后面

8、必须是常量表达式 有些问题只能使用多重if结构来实现,例如要判断一个值是否处在某个区间的情况,比较多重 if 和 switch 结构,21,示例4-1,问题描述: 要求判别键盘输入字符的类别。可以根据输入字符的ASCII码来判别类型。由ASCII码表可知ASCII码值小于32的为控制字符。 在09之间的为数字,在AZ之间为大写字母, 在az之间为小写字母,其余则为其它字符。,void main() char c; printf(n 请输入一个字符: ); c=getchar(); if(c=0 ,E,请输入一个字符:E,该字符是一个大写字母,22,示例4-2,问题描述: 编写一个简单的计算器,

9、实现两个整型数的四则运算。,int a,b;char op; printf(n 输入操作数1,运算符,操作数2: ); scanf(%d,%c,%d, ,输入操作数1,运算符,操作数2:45,*,2,452 = 90,45,2,*,23,条件运算符 5-1,?,?,条件表达式,考试是 否及格?,是,不是,真,表达式 1,假,表达式 2,24,条件运算符 5-2,if (num100) value=y; else value=n; ,使用“if-else”的等同代码,假设 num = 200,value = num 100,;,?,y,:,n,200,value,=,y,25,算术运算符示例,问题描述: 个人所得税收取规定:工资大于1000元的部分将扣除5的个人所得税。小于1000元的部分不扣除个人所得税。要求用户输入基本工资,计算税后工资。,#include void main() double sal; double rate; printf(n 请输入基本工资:); scanf(%lf, ,请输入基本工资:1500,税后工资为:1475.00,26,总结,多重if结构就是在主if块的else部分中还包含其他if块 嵌套if结构是在主if块中还包含另一个if

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论