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

下载本文档

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

文档简介

1、第,章,4,分 支 结 构,语句概述,问题的引出,if语句的嵌套,switch语句,if语句,语句可以分为五大类: 1. 表达式语句: 表达式的后面加一个分号 赋值语句 自加减运算符构成的表达式语句 逗号表达式语句 2. 空语句: 只有一个分号,作为语句结束符 3复合语句:由和把一些变量说明和 语句组合在一起 ,又称语句块。如: int a=0,b=1,sum; sum=a+b; printf(%d,sum); ,第,章,4,分 支 结 构,函数调用语句:由一个函数调用加上一 个 分号组成,如: printf(This is a function call); 5. 控制语句,共有9种,即:

2、if语句 switch语句 while语句 do-while语句 for语句 break语句 continue语句 goto语句 return语句,语句概述,问题的引出,if语句的嵌套,switch语句,if语句,第,章,4,分 支 结 构,【例4.1】有三个电阻并联,其阻值分别为 10、20、50,求并联后的电阻。 #include stdio.h main() float r,r1,r2,r3;执行顺序 r1=10; r2=20; r3=50; r=1/(1/r1+1/r2+1/r3); /*注意别忘了括号*/ printf(并联电阻r=%8.2fn,r); 运行结果: 并联电阻r= 5.

3、88,执行顺序,语句概述,问题的引出,if语句的嵌套,switch语句,if语句,第,章,4,分 支 结 构,此结构属于顺序结构,程序自上而下执行时 程序中的每一个语句都被执行一次,而且只能被执行一次。 C语言提供两种分支判断语句: If语句 switch语句,语句概述,问题的引出,if语句的嵌套,switch语句,if语句,第,章,4,分 支 结 构,4.3.1 if语句的一般形式,4.3.2 ifelse中的语句可以是复合语句,4.3 if语句,4.3.3 if语句的缺省形式,4.3.4 条件表达式较复杂的情况,4.3.5 条件表达式未必一定是关系或逻 辑表达式,4.3.6 同一个条件可以

4、有多种表达方式,语句概述,问题的引出,if语句的嵌套,switch语句,if语句,第,章,4,分 支 结 构,if语句的一般形式: if () else 注:内的表示是可选的 。,语句概述,问题的引出,if语句的嵌套,switch语句,if语句,第,章,4,分 支 结 构,【例4.2】请输入两个数a,b,比较a+b和 ab的大小,输出大者。 #include main() int a,b,s1,s2; coutab; s1=a+b; /*两个数的和*/ s2=a*b; /*两个数的积*/ if (s1s2) couta与b的和大于a与b的积 n; /* 语句A*/ else couta与b的积

5、大于等于a与b的和n; /* 语句B*/ ,语句概述,问题的引出,if语句的嵌套,switch语句,if语句,第,章,4,分 支 结 构,运行结果为: 请输入两个整数:2,3 a与b的积大于等于a与b的和 程序执行的过程: 比较两数的和与积, 如果s1s2,执行语句A, 否则,就跳过语句A执行语句B,语句概述,问题的引出,if语句的嵌套,switch语句,if语句,第,章,4,分 支 结 构,【例4.3】已知实数a,b,计算u=(r+s)2, v=(r+s)3的值。 #include stdio.h main() float a,b,u,v,s,r; printf(请输入实数a,b:); sc

6、anf(%f%f, ,A,B,语句概述,问题的引出,if语句的嵌套,switch语句,if语句,第,章,4,分 支 结 构,运行结果: 请输入实数a,b:5.0 6.0 u=103.361115,v=-1050.838013 若ab条件成立,执行的顺序是 AC, 否则执行的顺序是 BC。,语句概述,问题的引出,if语句的嵌套,switch语句,if语句,第,章,4,分 支 结 构,【注意】 (1)if后面的一定要有括号 (2)if和else同属于一个if语句, 程序中不可以没有if而只有else (3)if语句与else语句不可能同时执行 (4)如果和是非复合语句 那么该语句一定要以分号结束

7、(5)if语句的表达式可以是任意类型的 C语言的合法的表达式,语句概述,问题的引出,if语句的嵌套,switch语句,if语句,第,章,4,分 支 结 构,缺省条件语句形式: if () 执行过程:如果的值不为零, 执行,否则什么也不执行,跳 到if语句的下面,继续执行程序中的其 它语句。缺省else时的条件分支语句, 也 经常使用。,语句概述,问题的引出,if语句的嵌套,switch语句,if语句,第,章,4,分 支 结 构,【例4.4】输入三角形的三个边长,求出三角形的面积。 #include math.h main() float a,b,c; float area,s; /*s为三角形

8、的半周长*/ printf(请输入三角形的三边a,b,c:); scanf(%f%f%f, ,语句概述,问题的引出,if语句的嵌套,switch语句,if语句,第,章,4,分 支 结 构,运行结果: 请输入三角形的三边a,b,c:3 4 5 三角形面积area=6.000000 三角形构成条件: 任意两边之和大于第三边,由if语句判断条件的成立,语句概述,问题的引出,if语句的嵌套,switch语句,if语句,第,章,4,分 支 结 构,【例4.5】判断某一年是否为闰年。 判断闰年的条件: 能被4整除,但不能被100整除 或 能被400整除 程序: #include stdio.h main(

9、) int year; scanf(%d, ,语句概述,问题的引出,if语句的嵌套,switch语句,if语句,第,章,4,分 支 结 构,【例4.6】 #include stdio.h main() int s; if (s=2) printf(hello); else printf(error); 相当于if(2)printf(hello);,这是合法的 !,语句概述,问题的引出,if语句的嵌套,switch语句,if语句,第,章,4,分 支 结 构,【例4.7】 #include stdio.h main() int x,y; scanf(%d, ,语句概述,问题的引出,if语句的嵌套,

10、switch语句,if语句,第,章,4,分 支 结 构,把if(x)改成if(x!=0),其功能相同。 下面两种表示方法经常使用: if(x) 等价于 if(x!=0) if(!x) 等价于 if(x=0),语句概述,问题的引出,if语句的嵌套,switch语句,if语句,第,章,4,分 支 结 构,4.4.1 嵌套的引出,4.4.2 流程图,4.4 if语句的嵌套,4.4.3 if与else的配对规则,4.4.4 嵌套举例,语句概述,问题的引出,if语句的嵌套,switch语句,if语句,第,章,4,分 支 结 构,【例4.8】输入a,b两个数,比较并输出结果。 #include stdio

11、.h main() int a,b; printf(请输入a,b:); scanf(%d%d, ,一个完整的if语句,语句概述,问题的引出,if语句的嵌套,switch语句,if语句,第,章,4,分 支 结 构,程序中供选择的情况多于两个时使用两个以上if语句来进行判断。 if语句的嵌套:在一个if语句中 包含另一个if语句 内嵌的if语句既可以嵌套在if子句中, 也可以嵌套在else子句中。,语句概述,问题的引出,if语句的嵌套,switch语句,if语句,第,章,4,分 支 结 构,语句概述,问题的引出,if语句的嵌套,switch语句,if语句,第,章,4,分 支 结 构,【例4.9】写

12、出下列程序的输出结果。 #include stdio.h main() int x=4,y=5,z=2,max; max=x; if(zy) if(zx) max=z; else if(yx) max=y; printf(max=%d,max); 运行结果: max=4,语句概述,问题的引出,if语句的嵌套,switch语句,if语句,第,章,4,分 支 结 构,【例4.10】解方程:ax2+bx+c=0。 程序见课本P29,流程图如下图: 从代数知识可以知道: 若b2-4ac0 有两个不等的实根 若b2-4ac=0 有两个相等的实根 若b2-4ac0 有两个虚根,语句概述,问题的引出,if语

13、句的嵌套,switch语句,if语句,第,章,4,分 支 结 构,流程图:,语句概述,问题的引出,if语句的嵌套,switch语句,if语句,第,章,4,分 支 结 构,switch语句的一般形式是: switch () case : case : : : case : default: ,语句概述,问题的引出,if语句的嵌套,switch语句,if语句,第,章,4,分 支 结 构,【例4.11】模拟计数器的功能。 #include stdio.h main() float x, y; /*存放两个运算分量*/ char operator; /*存放运算符*/ printf(输入x,运算符和y:); scanf(%f%c%f,

温馨提示

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

最新文档

评论

0/150

提交评论