第5章 选择结构程序设计
第5章 选择结构程序设计

通过例5.4和5.5,会注意到:无论是块If单分支结构还是块If双分支结构,均 把程序执行过程分为满足条件的一支和不满足条件的另一支,但在应用中会遇 到类似下面的问题或更复杂的情况,例如,分段函数: x2 1 x>0 y 0 x=0 2 x<0 x 1
自变量x的取值分为三种情况,对应函数y有不同的计算表达式。此类问题 可以使用三个块IF单分支结构完成;也可以使用块IF双分支结构。若采用前 者,读者可仿照例5.4完成;若采用后者,可先把x的取值分为“等于0”和 “不等于0”两种情况,再把“不等于0”这种情况分成“大于0”和“小于0”两种 情况,代码如下: Dim x As Single, y As Single x = Val(InputBox("请输入变量的值")) If x <> 0 Then If x > 0 Then ' 不等于0的情况之一 y=x^2+1 Else ' 不等于0的情况之二 y=x^2-1 End If
2 2
Dim x As Single, y As Single ' 声明x,y为单精度变量 x = Val(InputBox("请输入变量的值")) ' 输入x的值 If x >= 0 Then ' x>=0时计算y y=x^2+1 End If If x < 0 Then ' x<0时计算y y=x^2-1 End If Print "x="; x, "y="; y 该代码段根据x取值的两种情况,分别计算出相应的y值,一个单分支If 结构完成一种情况的计算,因此结构简单,容易理解,但程序不够简练。
真
语句组1
c语言(第五章选择结构) c语言 教学课件

• !((year%4==0 && year%100!=0)||year%400==0)或者:
• (year%4!=0 )||( year%100==0 && year%400!=0)
C语言程序设计
第五章 选择结构程序设计
5.3 if语句(条件选择语句)
• if语句的三种形式 ▪ 形式一: • 格式:
语句2
=0
表达式3 非0
语句3
=0 语句4
C语言程序设计
第五章 选择结构程序设计
• 例:
if (salary>1000) else if (salary>800) else if (salary>600) else if (salary>400) else index=0;
index=0.4; index=0.3; index=0.2; index=0.1;
if (x>0) printf(“%f”,x) ;
else printf(“%f”,-x);
(3)在if 和else 后面可以只含一个内嵌的语句,也可以有 多个操作语句,此时用花括号将几个语句括起来成为一 个复合语句。如:
if (x>y)
{ t=x ; x=y ; y=t ; }
C语言程序设计
第五章 选择结构程序设计
a=4;b=5;
!a
//值为0
a&&b //值为1
a||b
//值为1
!a||b
//值为1
4&&0||2 //值为1
5>3&&2||8<4-!0 //(5>3)&&2||(8<(4-(!0))) 值为1
第五章 选择结构程序设计

第五章选择结构程序设计●教学内容(1)关系运算符与关系表达式;(2)逻辑运算符与逻辑表达式;(3)if语句;(4)switch语句;(5)程序举例;●基本要求理解选择结构在程序设计中的作用,掌握关系运算符、关系表达式、逻辑运算符、逻辑表达式的用法。
重点掌握选择结构在C语言中的实现语句,嵌套的if语句与多分支语句。
一、关系运算符与关系表达式“关系运算”实际上是“比较运算”。
将两个值进行比较,判断比较的结果是否符合给定的条件。
如a>3是一个关系表达式,大于号是一个关系运算符,若a=5;则满足条件,此时,关系表达式的值为真;若a=2,则值为假。
5.1.1关系运算符及其优先次序●6种关系运算符:<,<=,>,>=(优先级相同高),==,!=(优先级相同低)●优先次序:赋——>关——>算(由低到高)5.1.2关系表达式用关系运算符将两个表达式连接起来的式子。
关系表达式的值是一个逻辑值。
即“真”或“假”。
二、逻辑运算符与逻辑表达式5.2.1逻辑运算符及其优先次序●三种逻辑运算符:&& || !(双目运算符,要求有两个运算量)5.2.2逻辑表达式当表达式为非0时值1;为0时值为0。
P90例。
实际上,逻辑运算符两侧的运算对象不但可以是0或1,也可以是任何类型的数在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才能执行该运算符。
如a&&b&&c只有a,b 均为非0时才需要判断c。
三、if语句if语句是用来判定所给定的条件是否满足,根据判定的结果决定执行给出的两种操作之一。
5.3.1if语句的三种形式●if(表达式)语句如:if(x>y)printf(“%d”,x);●if(表达式)语句1 else 语句2如:if(x>y)print f(“%d”,x); else printf(“%d”,y);●if(表达式1)语句1else if (表达式2) 语句2else if(表达式3)语句3else 语句n如P93例5.15.3.2if语句的嵌套一般形式:if( )if( )语句1else 语句2elseif( )语句3else 语句4else总是与它上面的最近的还没有配对过的if 配对。
第五章选择结构程序设计

k=k2 A2 ...
k=kn k=ki Ai ... An
5.1 关系运算符和关系表达式
• 关系运算:将两个值进行比较,判断比较的结果是否 符合给定的条件(即关系运算符)。 < • 关系运算符 <=
• 种类:< <= == >= > != • 结合方向:自左向右 • 优先级别:
> >= == !=
逻辑运算符和表达式(2)
优先级:
! (2) 高
! 算术运算符 关系运算符
高
结合方向:
! : 从右向左
&& || 赋值运算符 低
&& (11) || (12) 低
&& : 从左向右 || : 从左向右
例
a<=x && x<=b // (a<=x) && (x<=b) a>b&&x>y // (a>b)&&(x>y) a==b||x==y // (a==b)||(x==y) !a||a>b // (!a)||(a>b)
5.2 逻辑运算符和逻辑表 达式
• 逻辑运算符
• 种类: !(逻辑非) &&(逻辑与) ||(逻辑或) • 逻辑运算真值表
a 真
真 假 假
b 真
假 真 假
!a 假
假 真 真
!b 假
真 假 真
a&&b 真假 Leabharlann 假a||b 真 真 真 假
C语言中,运算量: 逻辑运算结果:
0表示“假”, 非0表示“真” 0表示“假”, 1表示“真” 只能是0或1,不可能是其他数值
C语言课件 第5章

第5章 选择结构程序设计
/*程序 5 - 3, 求两个数的最大值、 最小值*/ main( ) { float x, y; float max, min; printf(″请输入两个数x, y: ″); scanf(″%f, %f″, &x, &y); if (x>y) {max=x; min=y; } else {max=y; min=x; } printf(″max=%6.2f, min=%6.2f\n″, max, min); } 输入数据: 1.2, 2.54 运行结果: max= 2.54, min= 1.20
第5章 选择结构程序设计
5.1.3 多分支if语句
多分支if语句不是一条具体的语句,它通过if语句的嵌套实
现。其一般形式为: if (条件表达式1)
if (条件表达式2) 语句1
else 语句2 else if (条件表达式3) 语句3 else 语句4
第5章 选择结构程序设计
T T
条件表达式1 条件表达式2
}
第5章 选择结构程序设计
例 5 — 7 将例 5 — 5 用switch语句实现。
switch ((int)(cj/10)) { 10: 9: ch=′A′; break; /*注意选择表达式的构造*/
8: ch=′B′; break;
7: ch=′C′; break; 6: ch=′D′; break;
第5章 选择结构程序设计
例 5 –3 输入两个数, 求两个数的最大值、最小值。 数据分析:
输入量: 两个数x、 y, float
选择结构程序设计

4
+ 加法运算符 - 减法运算符
要求运算 对象的个数
1 (单目运算符)
2 (双目运算符)
2 (双目运算符)
结合方向 自右至左
优先级 运算符 含义
<< 左移运算符
5 >> 右移运算符
< <= 关系运算符 6 > >=
7
= = 等于运算符 != 不等于运算符
8 & 按位与运算符
9பைடு நூலகம்
^ 按位异或运算符
10
运算符和结合性
优先级 运算符 含义
( ) 圆括号
[ ] 下标运算符
指向结构体
1
.
成员运算符
结构体成员运算符
! 逻辑非运算符
~ 按位取反运算符
2
++ --
自增运算符 自减运算符
- 负号运算符
(类型) 类型转换运算符
* 指针运算符
& 地址,与运算符
sizeof 长度运算符
* 乘法运算符
3
/
除法运算符
% 求余运算符
执行过程: 先计算表达式的值, 如果值为1, 就执行其后的 语句1, 如果值为0, 就执行else后的语句2
P
成立
不成立
说明: 1. 语句可以是简单语句或复合语句
语句1 语句2
2. 表达式一般为逻辑或关系表达式, 且应用( )括起来
例:编程求解函数 Y= 0
X<=0
X3+X+1 X>0
#include <stdio.h> #include <math.h> void main( ) { int x, y; scanf(“%d〞, &x); if (x<=0) y=0; if (x>0) y=pow(x, 3)+x+1; printf(“y=%d\n〞, y); }
c语言-第5章选择结构程序设计

第三课 有关“说”的词根
01
Dict,dic:言,说
02
Fess:说
03
Lect:言
04
Log:言,说
05
Nounce:说
06
Dictate v. Dict说--吩咐,命令,指示+ -ate动词后缀 口授命令或指示 命令,支配,口述 Contradict vt. Contra-相反+dict言 说出相反之言 反驳,同..相矛盾,与..相抵触 Predict vt. Pre-前,先,预先+dict言 预言,预告 Indicate vt. In-指示+dic言,说 说明,表明,表示+-ate 动词后缀 指示,指出,表明
宣告,宣布,通知
05
Pro-向前+nounce说--说出,发出声音
02
An-加强+nounce说,告知
04
Pronounce vt.
06
发音,宣称,宣告
01
第四课 有关“叫喊,问答”的词根
02
Cite:召唤,刺激
03
Voc,voke: 叫喊,声音
04
Quest,quire:寻求,问
05
9
Dialog(ue) n.
1
Dia- 两者之间,相对+log 言,说
2
对话
3
Apologize vi.
4
Apo-分开,离开,脱开+log言,说+-ize动词后缀 开脱 解说
5
道歉,谢罪,辩解
6
Apology
7
y名词后缀
8
道歉,谢罪
9
01
Announce vt.
教学课件第5章选择结构程序设计

……
条件表达式1
T 语句块1
F
条件表达式2
T 语句块2
…… 结束(End)
F
……
条件表达式n
T 语句块n
F
语句块n+1
选择结构程序设计
If...Goto结构 Visual Basic提供了一种控制If...goto
语句,这种控制语句主要用于程
序的出错处理或者是根据条件提
前结束程序的操作。这种语句的 格式是:
…
End If]
End If
选择结构程序设计
Select case 结构
这种结构就是根据我们对于一个事件的不同的选择而使其出现不同的
结果。实际上是对多分支结构的另一种表达方式,目的就在于增强程
序的可读性,它的理解方法完全和上面所讲述的多分支结构一样,只
是在语法上有一定的不同。这种结构的语法结构如下所示,下图是这
x=x^2+2*x+32 print x exits: x=x+100 print x End sub
选择结构程序设计
嵌套结构
在一个If … Then … Else结构的一个或者几个语句块中包含一个或若 干个If … Then … Else结构的语句称为嵌套结构。这种结构的语法 可以表示如下:
If <条件表达式> Then [If <条件表达式> Then
中在加上几个分支,达到多重条件的判断。它的语法可以表示如下:
If <条件表达式1> Then
语句块1
ElseIf <条件表达式2> Then
语句块2
ElseIf <条件表达式3> Then
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
--
第 五 章 控 制 结 构 选 择 构 程 序 设 计
【例5-4】求函数Y的值
Y=
ex+e-x x<0 1.25 x=0 lgx x>0
X = Val(Text1.Text) Select Case X Case X < 0 Y = Exp(X) + Exp(-X) Case X =0 Y = 1.25 Case X > 0 Y = Log(X) / Log(10) End Select Print "Y="; Y
17
--
第 五 章 控 制 结 构 选 择 结 构 程 序 设 计
Private Sub Text1_KeyUp(KeyCode As Integer, _ Shift As Integer) Static I As Integer ' 保存输入错误口令的次数 If KeyCode = 13 Then ' 如果按下的键为回车键 If UCase(Text1.Text) = "HELLO" Then Label2.Caption = "恭喜!,您已成功进入本系统" ElseIf I = 0 Or I = 1 Then I=I+1 Label2.Caption = "口令错!,请重新输入" Text1.SelStart = 0 Text1.SelLength = Len(Text1.Text) Else MsgBox "对不起,您不能使用本系统": End End If End If End Sub 18
--
10
第 5.2 块结构条件语句 五 1.格式 章 If <条件1> Then [<语句组1>] 控 制 [ElseIf <条件2> Then 结 [<语句组2>]] 构 …… 选 择 [ElseIf <条件N> Then 结 [<语句组N>]] 构 程 [Else 序 [<其他语句组>]] 设 End If 计 功能: …… --
y= |x| x≤0 lnx x>0
Text1 Label3
--
Private Sub Command1_Click() Command1 X = Val(Text1.Text) If X <= 0 Then Y = Abs(X) Else Y = Log(X) Label3.Caption = Y End Sub 6
第 第5章 选择结构程序设计 五 章 本章要点: 条件语句 控 制 结 构 选 择 结 构 程 序 设 计 • 单行结构条件语句If...Then...Else • 块结构条件语句
--
If...Then... ... else ... EndIf
1
第 五 章 控 制 结 构 选 择 结 构 程 序 设 计
16
X = Val(Text1.Text) Select Case X Case Is < 0 Y = Exp(X) + Exp(-X) Case 0 Y = 1.25 Case Is > 0 Y = Log(X) / Log(10) End Select Print "Y="; Y
--
第 五 章 控 制 结 构 选 择 结 构 程 序 设 计
5.1
单行结构条件语句
1. 格式 If <条件> Then [<语句组1>] [Else <语句组2>] 2. 功能 如果<条件>成立,则执行<语句组1> 否则执行<语句组2> 3. 说明 (1) <条件> : 关系表达式、布尔表达式 数值表达式(0为False,非0为True) 字符串表达式("0"为False,非"0"为True) (2) <语句组1>、<语句组2>: 可以有多条语句,各语 句之间用冒号隔开。 (3)可以没有Else部分,这时必须有<语句组1>。
If <条件1> Then [语句组1] Else [语句组2] End If If语句 ElseIf子句 Else子句 End If语句 注意: 格式书写、嵌套 11
第 五 章 控 制 结 构 选 择 结 构 程 序 设 计
【例5-4】输入华氏温度F, 利用公式C=5/9*(F-32)转 换成摄氏温度C,根据转 换结果C的不同值,按以 下要求给出相应的提示。
--
13
第 五 章 控 制 结 构 选 择 结 构 程 序 设 计
5.3 多分支选择语句 1. 格式 Select Case <测试表达式> Case <表达式表1> [<语句组1>] [Case <表达式表2> [<语句组2>]] … [Case Else [<语句组n>]] End Select 2. 功能: 根据测试表达式的值,按顺序匹配Case后的 表达式,如果匹配成功,则执行该Case下的语句块, 然后转到End Select语句之后继续执行。 14
控制结构
顺序结构
分支结构(选择)
--
重复结构(循环)
2
第 五 章 控 制 结 构 选 择 结 构 程 序 设 计
本章要点: 条件语句(续)
•多分支选择语句
Select Case... Case ... ... End Select
特点: 根据条件是否成立,决定程序的执行分支
3
--
第 五 章 控 制 结 构 选 择 结 构 程 序 设 计
--
Text1 Text2
Text3
Command1
19
第 五 章 控 制 结 构 选 择 结 构 程 序 设 计
Private Sub Command1_Click() A = Val(Text1.Text): B = Val(Text2.Text) C = Val(Text3.Text): Cls CurrentX = 600: CurrentY = 1100 If A = 0 Then If B = 0 Then MsgBox "系数为零,请重新输入" Text1.SetFocus Text1.SelStart = 0 Text1.SelLength = Len(Text1.Text) Else X = -C / B Print "X="; Format(X, "0.000") End If Exit Sub End If
Text1 Text2
--
C>40时,打印"HOT " 30<C≤40时,打印" WARM " 20<C≤30时,打印" ROOM TEMPERATURE " 10<C≤20时,打印" COOL " 0<C≤10时,打印" COLD " C≤0时,打印" FREEZING"
12
第 五 章 控 制 结 构 选 择 结 构 程 序 设 计
--
任意输入一对坐标值,找出它所在的象限。
8
第 五 Private Sub Command1_Click() 章 X = Val(Text1.Text): Y = Val(Text2.Text) If X = 0 Or Y = 0 Then Print "不在任何象限内": _ 控 制 Exit Sub 结 If X > 0 Then If Y > 0 Then Print "IN A" Else _ 构 Print "IN D" Else If Y > 0 Then Print "IN B" _ 选 Else Print "IN C" 择 rem 以上3行是一个语句。 结 构 End Sub 程 序 设 计 -9
--
第 五 章 控 制 结 构 选 择 结 构 程 序 设 计
5. 嵌套 IF ... THEN...IF ... THEN ...ELSE ...ELSE… 【例5-2】平面直角坐标系中,不同的象限内,点 的坐标的符号有以下4种情况: 在A象限 B C D X>0,Y>0 X<0,Y>0 X<0,Y<0 X>0,Y<0 Y B C A X D
5.4 应用举例 【例5-7】设计一个口令检测程序,界面如下图,当 用户输入的口令正确时,显示“恭喜!,您已成 功进入本系统”,否则,显示,“口令错!,请 重新输入”。如果连续两次输入了错误口令,在 第三次输入完口令后则显示一个消息框,提示 “对不起,您不能使用本系统”,然后退出整个应 用程序。 Text1 Label2
X = Val(Text1.Text) Y = Abs(X) If X > 0 Then Y = Log(X) Label3.Caption = Y X = Val(Text1.Text) Y = Log(X) If X <= 0 ThenY = Abs(X) Label3.Caption = Y
7
4
--
第 选择结构 五 传统流程图: 章 控 制 结 构 选 择 结 构 程 序 设 计
a
成立
语句组1
条件?
不成立
语句组2
-N-S流程图: 成立 A
b 条件
不成立 B
5
第 五 章 控 制 结 构 选 择 结 构 程 序 设 计
例: If N>0 Then A=A+B:B=B+A Else A=A-B:B=B-A 例: If X<>"aaa" Then Print X 【例5-1】设界面如下图所示,用文本框输入x的值, 单击“计算Y”按钮时,根据以下公式计算y的值。