第五讲-嵌套结构
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
答
(year%4==0&&year%100!=0)||year%400==0
案
值为真(1)是闰年,否则为非闰年。
17
if语句的多种结构
双分支结构 单分支结构 嵌套结构
多分支结构
18
单分支结构
if(条件)
语句
真
假
表达式
语句1
常见错误示范
if(c==m) if(c!=m)
m=m;
8
嵌套结构
三种基本结构中的语句组(顺序语句组、if 分支语句组、else分支语句组、循环体语句 组)可以包含任意结构的语句,从而形成 不同的嵌套结构。
嵌套结构没有特定的结构形式,由分析方 法自然形成
9
嵌套结构示例: 求n个数中的最大值(sample02_01.cpp)
输入n
输入第一个数,假定为最大 值max
用这三种基本结构作为表示一个良好算法 的基本单元。
6
三种基本结构的图示
顺序结构
选择结构
循环结构 7
三种基本结构的共同特点
(1)只有一个入口。 (2)只有一个出口。(请注意:一个菱形判
断框有两个出口,而一个选择结构只有一 个出口。不要将菱形框的出口和选择结构
(3)结构内的每一部分都有机会被执行到。 (4)结构内不存在“死循环”(无终止的循环)。
第一讲 嵌套结构
3
主要内容
嵌套结构:自顶向下,逐步细化的分析的 结果
选择嵌套结构—if 深入 循环嵌套结构 复合嵌套结构 嵌套结构的典型算法
4
嵌套结构
自顶向下,逐步细化的分析的结果
5
程序的三种基本控制结构
Bohra和Jacopini提出了以下三种基本结构:
顺序结构 选择结构 循环结构
循环i从2到n ,step 1
输入一个数到x 如果x比假定最大值max还大,
则 修正max为x
输出max的值
循环体嵌套:
顺序语句 选择语句
10
if语句深入
复杂条件表示
逻辑运算符连接多个条件
if语句的多种结构 if和else的匹配原则
11
复杂条件的表示
x是一个介于0到10的数
第二部分 模块化编程
嵌套结构 模块化编程 其它控制结构语句 指针和输出参数 数据文件
1
主要内容
第一讲 嵌套结构 第二讲 模块化结构 第三讲 其它控制结构语句介绍 第四讲 反向数据传递--输出参数 第五讲 数据文件
涉及课本内容:第3,4,5,8.1,8.2,12章
2
m=c;
else
m=c ;
19
单分支结构示例-求绝对值 sample02_02.cpp
#include <stdio.h> int main(void)
Enter a number: 10 The absolute value is 10.
{ int number;
printf("Enter a number: "); scanf("%d", &number); if(number < 0){
Enter a number: -300 The absolute value is 300.
number = -number;
}
printf("The absolute value is %d.\n", number);
return 0;
}
20
选择嵌套结构
在if语句中又包含一个或多个if语句称为if语句 的嵌套
例:a&&b 若a,b为真,则a&&b为真。 a||b 若a,b之一为真,则a||b为真。 !a 若a为真,则!a为假。
优先次序
!(非)->&&()->||() 逻辑运算符中的“&&”和“||”低于关系运算符,“!”高于
算 术运算符 13
逻辑表达式
用逻辑运算符将关系表达式或逻辑量连接起 来的式子就 是逻辑表达式。
0
y
f
(x)
Biblioteka Baidu
4x 3
2.5x 10.5
判断b。a和b都为假才判断c
例:(m=a>b)&&(n=c>d)
当a=1,b=2,c=3,d=4,m和n的原值为1时,由于“a>b”的值 为0,因此m=0,而“n=c>d”不被执行,因此n的值不是0而 仍保持原值1。
16
复杂条件示例
用逻辑表达式来表示闰年的条件
•能被4整除,但不能被100整除。 •能被4整除,又能被400整除。
逻辑表达式的值应该是一个逻辑量“真”或 “假”。C语言对应计算值1或0
例:设a=4,b=5: !a的值为0 a||b的值为1 4&&0||2的值为1
任何非零的数值被认作“真”
a&&b的值为1 !a||b的值为1
14
逻辑表达式示例
例:5>3&&8<4-!0 自左向右运算
5>3逻辑值为1
!0逻辑值为1
4-1值为3
表达式值为0
1&&0逻辑值为0 8<3逻辑值为0 15
逻辑表达式 的优化原则
在逻辑表达式的求解中,并不是所有的逻辑运算符都要被执行。 (1)a&&b&&c 只有a为真时,才需要判断b的值,只有a和b都为真时,
才需要判断c的值。 (2)a||b||c 只要a为真,就不必判断b和c的值,只有a为假,才
23
多分支结构图示
表达式 1
真
语句1
假 表达式 2 真
语句2
假 假
…
表达式n-1
真
…
语句n-1
假
语句n
24
多分支示例-分段计算水费sample02_03.cpp
# include <stdio.h> int main(void) {
double x, y; printf("Enter x:"); scanf("%lf", &x); if (x < 0){
0<=x<=10 错误:二目运算值恒为1 逻辑应为: x>=0并且x<=10 x>=0&&x<=10
12
逻辑运算符
逻辑运算符
(1)&& (逻辑与) 相当于其他语言中的AND (2)|| (逻辑或) 相当于其他语言中的OR (3)! (逻辑非) 相当于其他语言中的NOT
21
完整嵌套结构
if(条件1)
if(条件2)
语句1
真
假
表达
else
式1
语句2
else
真
假
表达
式2
真
表达
假
式3
if(条件3)
语句3
语句
语句
语句
语句
else
1
2
3
4
语句4
22
多分支结构
if (表达式1) 语句1 else if (表达式2) 语句2 …… else if (表达式n-1) 语句n-1 else 语句n