第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
c语言程序设计 第五章 程序控制流程——选择结构
1. 基本语法格式
if(表达式)
语句
说明:
(1) if语句的执行过程是先计算表达式的值,如果非0就执行包含在if中的语句;如果为0就不执行该语句。如下图所示:
(2) if语句中的表达式可以是任意的有值表达式,实际编程时往往使用关系表达式或将多个关系表达式用逻辑运算符连接起来的逻辑表达式。
main()
{
double a=.9*9,b=.1;
double c=0.1+0.2;
printf("c==0.3 %d\n",c==0.3);
printf("a==b %d\n",a==b);
}
【例5.4】比较两个浮点数是否相等的正确方法
#include <stdio.h>
#include <math.h>
#include <stdio.h>
main()
{
int a10,b=50,c=30;
if(a=b+c) printf("*******\n");
else printf("$$$$$$$\n");
}
【例5.14】输入两个实数,按代数值由小到大的次序输出这两个数。
#include <stdio.h>
main()
scanf("%d,%d,%d",&a,&b,&c);
max=a;/*先假定变量a的值最大*/
if(max<b) max=b;/*比较变量max值和变量b值的大小,如果b大,就将b赋给max*/
if(max<c) max=c;/*比较变量max值和变量c值的大小,如果c大,就将c赋给max*/
第五章:选择型程序设计(C语言讲义)PPT教学课件
case ‘C’:
printf(“score>60\n”);
break;
……..
例 switch(score) { case 5: printf(“Very good!”); case 4: printf(“Good!”); case 3: printf(“Pass!”); case 2: printf(“Fail!”); default : printf(“data error!”); }
main()
{ int x,y;
运行:Enter integer x,y:12,23
printf("Enter integer x,y:");
X<Y
scanf("%d,%d",&x,&y); if(x!=y)
Enter integer x,y:12,6 X>Y Enter integer x,y:12,12
if(x>y) printf("X>Y\n");
X==Y
else printf("X<Y\n");
else
printf("X==Y\n");
}
例: if (a==b) if(b==c) printf(“a==b==c”);
else printf(“a!=b”);
修改: if (a==b) { if(b==c) printf(“a==b==c”); } else printf(“a!=b”);
运行结果:a=2,b=1
PPT教学课件
谢谢观看
Thank You For Watching
非0
=0
第五章 选择结构程序设计
第五章选择结构程序设计●教学内容(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
教学课件第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
第5章 选择结构程序设计PPT教学课件
2020/12/11
6
private void button1_Click(object sender, System.EventArgs e) {
double k,m; k=double.Parse(tCost.Text); if (k<1000)
{ m=k*0.9;
} else
{ m=k*0.8;
用选择语句实现该操作。
分析:本题使用编辑框实现 命令接受工作,使用if语句实 现判断。采用基本的控件实 现如图5-4所示。
2020/12/11
图5-4 口令验证
8
代码如下。
private void button1_Click(object sender,
System.EventArgs e)
{ if(textBox1.Text=="abc") // 设口令为“abc” label2.Text="欢迎使用本系统!"; // 如果输入正确,显
} pCost.Text=m.ToString( ); }
2020/12/11
7
(4) 编译、运行程序 单击工具栏上的启动按钮,或按〈F5〉键执行程序,显 示Windows窗体。在“请输入所购商品的总金额”文本 框中输入相关金额,单击【打折】按钮,完成相应的功 能。 【例5-2】编辑框的PasswordChar属性可以隐蔽用户通过 键盘输入的字符,常用来编写检查用户口令的程序。使
第5章 选择结构程序设计
5.1 选择结构程序的设计
在C#中,提供两种选择语句实现流程的改变: if语句,用于判断特定的条件能否满足,用于单 分支选择,也可以通过嵌套实现多分支选择。 switch语句,用于多分支选择。
第五章选择结构程序设计练习含答案v1
第五章选择结构程序设计5.1选择题【题 5.4 】能正确表示“当x 的取值在[ 1, 10]和[ 200, 210]范围内为真,否则为假”的表达式是。
CA) (x>=1)&&(x<=10)&&(x>=200)&&(x<=210)B) (x>=1)||(x<=10)||(x>=200)||(x<=210)C) (x>=1)&&(x<=10)||(x>=200)&&(x<=210)D) (x>=1)||(x<=10)&&(x>=200)||(x<=210)【题 5.5 】表示图中坐标轴上阴影部分的正确表达式是。
C////////////////Xa b cA) (x<=a)&&(x>=b)&&(x<=c)B) (x<=a)||(b<=x<=c)C) (x<=a)||(x>=b)&&(x<=c)D) (x<=a)&&(b<=x<=c)【题 5.6 】判断 char 型变量 ch 是否为大写字母的正确表达式是。
CA)‘ A’ <=ch<=‘ Z’B) (ch>= ‘ A’ )&(ch<= ‘Z’ )C) (ch>= ‘ A’ )&&(ch<= ‘ Z’ )D) ( ‘A’ <=ch)AND(‘ Z’>=ch)【题 5.10 】设有: int a=1,b=2,c=3,d=4,m=2,n=2;执行 (m=a>b)&&(n=c>d) 后 n 的值为。
BA)1B)2C)3D)4【题 5.11 】判断 char 型变量 c1 是否为小写字母的正确表达式是。
北京航空航天大学C语言c第三讲(第五章) 选择结构程序设计
if (money>=500) cost=0.8; else if (money>=300) cost=0.85; else if (money>=100) cost=0.9 else if (money>=50) cost=0.95; else cost=1.0; price=money*cost;
高 低
3,优先级 <,<=,>,>= 为同一级别,== 和!= 为同一级别. 在同一级别中,采取由左至右的结合方向.
算术运算符 -> 关系运算符 -> 赋值运算符
4,关系表达式
用关系运算符将两个表达式连接起来叫关 系表达式。 例:关系运算的优先级举例
c>a+b a>b!=c a==b<c a=b>c
if (表达式) 语句1 else 语句2
说明: (1)表达式是指关系表达式或逻辑表达式,条
件满足指的是表达式的值为真,即表达式的 值是一个非0值。 例如: if (3) printf(“O.K”); 输出O.K(永真) if („a‟) printf(“%d”,„a‟); 输出97 (永真) if (0) printf(“false”); 不执行printf语句(永假)
能被4整除,但不能被100整除; 能被400整除。
用year表示年份,判断闰年的逻辑表达式为: (year%4==0 && year%100 != 0)||(year % 400 ==0)
如果给year输入一个的值,使上面的表达式的值为1
时,则year所代表的年份就是闰年。
• 课堂练习: 写出逻辑表达式。 10 1. 判断一个点是否 10 -10 落入圆形中 2. 求落入阴影部 -10 分的任意一点 x*x+y*y<=100 (小园的半径为1.)
c程序设计 第5章 选择结构程序设计
5.2
逻辑运算符和逻辑表达式
用逻辑运算符将关系表达式或逻辑量连接 起来的式子就是逻辑表达式。 ! 高 算术运算
a b !a
关系运算
a&&b
&&
真 真 真 假
逻辑 运算 真值 表
|| 低
a||b
真 真 假 假
ቤተ መጻሕፍቲ ባይዱ
真 假 真 假
假 假 真 真
真 假 假 假
例如:
(a>b) && (x>y) 可写成 a>b && x>y
Turbo c菜单介绍(Alt+首字符)
Edit (编辑)、 Compile (编译) 、 Project (工程) 、 Options (选项) 、 Debug (调试) 、 Break/Watch (中断 /查看) 、Run菜单(运行) Run Ctrl+F9 编译、连接、运行C源程序 Program reset Ctrl+F2 重新编译、连接、运行C源程 序
第5章
选择结构程序设计
重点: 如何实现程序中选择结构? 关系运算符和关系表达式 逻辑运算符和逻辑表达式 if语句和switch语句
5.1 关系运算符和关系表达式
关系运算===比较运算。结果为真或假(0或 非零)。 一、运算符与优先级 (左结合性)
< 高 高 <= 同级 > >= == != 同级 低
else if(number>100) cost=0.075;
else if(number>50) cost=0.05;
else cost=0;
例5.1 从键盘输入两个整型数,输出最大数。
开 始 main() { int a ,b ; scanf(“%d,%d”,&a,&b); if(a>b) printf(“max=%d\n”,a); if(b>a) printf(“max=%d\n”,b); } end a<b b a,b a>b a
VF第5章
属性值 关闭(\<Q) 0–左 * 请输入您的口令:
说明 按钮的标题 标签的内容 文本对齐方式 只显示设定的符号:* 文本初值为空字符串 容器控件中的标签
编写程序代码. ③ 编写程序代码. 编写关闭按钮Command1的Click事件代码: 事件代码: 编写关闭按钮 的 事件代码 THISFORM.Release 编写Text1的Valid事件代码: 事件代码: 编写 的 事件代码 mand1.TabStop = .F. a = LOWER(THIS.Value) IF a= "abcd " bel1.Top = THIS.Parent.Top bel1.Caption="欢迎使用本程序!" 欢迎使用本程序! 欢迎使用本程序
所示). 【例5-3】求函数值(如图 所示). 】求函数值(如图5-4所示 输入x,计算y的值 其中: 的值, 输入 ,计算 的值,其中:
4 x ( x ≥ 0) y= 15 2 x ( x < 0)
根据以上分析,画出流程图,如图5-5所示.
输入x 如果x >= 0 真 假 输出y y←4*x y ← 15 – 2 * x {x >= 0时的y值} {x < 0时的y值} {输出y的值} {给出x的值}
第5章 选择结构程序设计 章
5.1 条件表达式 5.2 条件选择语句 5.3 提供简单选择的控件 5.4 计时器与微调器 5.5 键盘事件
5.1 条件表达式
5.1.1 关系运算符与关系表达式 VFP提供的关系运算符有 种,见表 . 提供的关系运算符有8种 见表5-1. 提供的关系运算符有
运算符 < <= > >= = <>,#,!= $ == 名称 小于 小于或等于 大于 大于或等于 等于 不等于 包含于 等同于 "Fox" $ "FoxPro" 值为:.T. 例子 3<4 4 <= 3 0>1 "aa" >= "ab" 说明 值为:.T. 值为:.F. 值为:.F. 值为:.F.
二级VB 第5章选择
5.1 5.2 5.3 5.4 5.5 5.6 三种基本结构 块if语句 块if语句的 Else if语句 行if语句 Select Case语句
本章重点:
※ if语句
※ if语句的嵌套 ※ Select Case语句
本章难点:
if语句的不同用法 if语句嵌套的的规则
Select Case语句的应用
单分支结构
例:已知两个数x和y,比较它们的大小,使得x大于y。
用语句来实现: If x<y Then t=x x=y y=t End If 或 If x<y Then t=x: x=y: y=t x ③
简单If形式无End If时,只能是一句语句或语句间用冒号分 隔,而且必须在一行上书写。
本章目录
5.2.1 块If语句格式
1. If…Then语句(单分支结构) If <条件表达式> Then 语句块 End If 或 If <表达式> Then <语句>
条件表达式
T F
语句块
表达式:关系表达式、逻辑表达式,算术表达式。
表达式值按非零为True,零为False进行判断。 该语句的作用是当表达式的值为True,执行Then 后面的语句块,否则不做任何操作。
学习方法建议: 学习本章内容应重点掌握if语句的执行过程,在此基础上, 掌握if语句的嵌套的应用,掌握Select Case语句,并学会编写 选择结构程序。
5.1 三种基本结构
VB 具有结构化程序设计的三种程序控制结构,即 顺序结构、选择结构、循环结构,是程序设计的基础。 (1)顺序结构 a 各语句按出现的先后次序执行 A 例5.1已知圆的半径,求圆的面积。
第05章 选择结构程序设计
本章讨论
5.2 关系运算符、逻辑运算符、条件运算符
1. 关系运算符和关系表达式 关系运算符
关系运算符 > >= (>和=之间没有空格) < 含 义 大于 大于或等于 这些关系运算符等优 先级,但比下面的优 小于 先级高 左结合性 小于或等于 优先级 结合性
<= (<和=之间没有空格) 注意: (两个=之间没有空格) 等于 这些关系运算符等优 ==C语言用0表示假,非0表示真。 先级,但比上面的优 != (!和=之间没有空格) 不等于 一个关系表达式的值不是0就是1,0表示假,1表示真。 先级低
表达式语句 用 {…}括起来的一组语句。 一般形式为: { [数据说明部分;] #include <stdio.h> 执行语句部分; void main ( ) } { 说明: { (1) 10, y = 20, z; int x = “}”后不加分号 输出结果: int a = 2, b = 3, c; (2) 语法上和单一语句相同 z = 200 c = a + b; (3) z = x + y; 复合语句可嵌套 30 z = printf ("c = %d\n", c); (4) 复合语句内定义的变量只能在复合语句内使 { } 用。 int z; z = x * y; printf ("z = %d\n", z); //输出复合语句中z的值 } printf ("z = %d\n", z); //输出复合语句外z的值 }
例 x?„a‟:„b‟ //x=0,表达式值为‘b‟; x≠0,表达式值为‘a‟ x>y?1:1.5 //x>y ,值为1.0; x<y ,值为1.5
第五章 选择(分支)结构程序设计.
第五章选择(分支)结构程序设计选择结构是三种基本结构(顺序、选择、循环)之一。
作用是根据所指定的条件是否满足,决定从给定的两组操作选择其中的一种。
C语言中的选择结构是用if语句实现的。
if语句的常用的形式是:if(关系/逻辑表达式)语句1 else 语句2例5-1:用C语言实现图示的分段函数。
数学上描述此分段函数:1, x>0y=其它用C语言描述:if(x>0)y=1;else y=-1;其中:x>0是一个关系表达式,“>”是一个关系运算符。
x>0关系表达式成立,也就是说由关系表达式x>0构成的逻辑运算为真时,y<=1,否则y<=-1。
5、1 关系运算符和关系表达式关系运算是逻辑运算中比较简单的一种,“关系运算”就是“比较运算”。
即,将两个值进行比较,判断是否符合或满足给定的条件。
如果符合或满足给定的条件,则称关系运算的结果为“真”;如果不符合或不满足给定的条件,则称关系运算的结果为“假”。
例5-1中,x>0是比较运算,也就是关系运算,“>”是一种关系运算符。
假如x=4,那么x>0条件满足,就是说关系运算x>0的结果为“真”。
5.1.1 关系运算符及其优先次序C语言提供6种关系运算符:关于优先次序:(1)前4种关系运算符的优先级别相同,后两种也相同。
前4种高于后两种。
(2)关系运算符的优先级低于算术运算符。
(3)关系运算符的优先级高于赋值运算符。
例5-2:c>a+b 等价于c>(a+b);关系运算符的优先级低于算术运算符a>b==c 等价于(a>b)==c ;“>”优先级高于“==”a==b<c 等价于a==(b<c) ;“<”优先级高于“==”a=b>c 等价于a=(b>c) ;关系运算符的优先级高于赋值运算符。
5.1.2 关系表达式用关系运算符将两个表达式(算术、关系、逻辑、赋值表达式等)连接起来所构成的表达式,称为关系表达式。
c语言第五章选择结构程序设计(习题册答案)
c语⾔第五章选择结构程序设计(习题册答案)第五章选择结构程序设计基础练习(A)⼀、填空题1、关系表达式的运算结果是逻辑值。
C语⾔没有逻辑型数据,以1代表“真”,以0代表“假”。
2、逻辑运算符!是单⽬运算符,其结合性是由右结合性。
3、C语⾔提供的三种逻辑运算符是&&、|| 、!。
其中优先级最⾼的为!,优先级最低的为| | 。
4、逻辑运算符两侧的运算对象不但可以是0和1,或者是0和⾮0的整数,也可以是任何类型的数据。
系统最终以0 和⾮0 来判定它们属于“真”或“假”。
5、设y为int型变量,请写出描述“y是偶数”的表达式(y%2==0)。
6、设x,y,z均为int型变量,请写出描述“x或y中有⼀个⼩于z”的表达式x7、条件“22&&x<3。
8、判断char型变量ch是否为⼤写字母的正确表达式是(ch>=‘A’)&&(ch<=‘Z’)。
9、当a=3,b=2,c=1时,表达式f=a>b>c的值是0。
10、当a=5,b=4,c=2时,表达式a>b!=c的值是1。
11、已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||AB的值是0。
12、若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值是1。
13、有int x,y,z;且x=3,y=-4,z=5,则表达式(x&&y)==(x||z)的值为1。
14、有int x,y,z;且x=3,y=-4,z=5,则以下表达式的值为1。
!(x>y)+(y!=z)||(x+y)&&(y-z)15、有int a=3,b=4,c=5,x,y;,则以下表达式的值为0。
!(x=a)&&(y=b)&&016、if (!k) a=3;语句中的!k可以改写为k= =0,使其功能不变。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通过此题看出,根据学生成绩的不同,程序运行的结果也不同。这种根据条件,选择 执行某个语句或语句块的形式,就为选择结构。本章主要介绍实现选择结构的程序设计。
5.2 If 语 句
If 语句是最常用的实现选择结构的语句。If 条件有多种形式,包括单分支、双分支和 多分支语句等。
5.2.1 单分支 If 语句
If <条件表达式 1> Then <语句块 1>
ElseIf <条件表达式 2> Then <语句块 2> ……
ElseIf <条件表达式 n> Then <语句块 n>
[Else <语句块 n+1>]
End If
执行过程:首先判断<条件表达式 1>的值,若<条件表达式 1>的值为 True,则执行 Then 后面的语句块 1,然后执行 End If 语句;若<条件表达式 1>的值为 False,则判断<条件表达 式 2>的值。若<条件表达式 2>的值为 True,则执行 Then 后面的语句块 2,然后执行 End If 语句;若<条件表达式 2>的值为 False,则继续依次判断后续条件表达式,直至某个条件表 达式为 True 时,执行对应 Then 后面的语句块,然后执行 End If 语句。若所有条件表达式 的值都为 False,则执行 Else 后面的语句块 n+1。执行流程图如图 5.5 所示。
分析: (1)输入和输出均用对话框实现,故窗口上不需添加任何控件。事件过程可选 Form_Click()。 (2)在 Form_Click()事件中,首先输入 x 的值,然后对 x 的值做 If 条件判断,并根据 不同的判断结果做相应的处理,最后输出计算结果。 (3)判断数字字符的函数为 IsNumeric(),比如,若 IsNumeric(x)的值为 True,则表示 x 是数字字符。
程序代码如下:
Private Sub Form_Click() x = InputBox("请输入 x 的值", "输入框") If Not IsNumeric(x) Then
第 5 章 选择结构程序设计
83
MsgBox x & " 不是数值!" Exit Sub ElseIf Val(x) <= 0 Then y=2*x+2 ElseIf Val(x) > 0 And Val(x) < 2 Then y = -1 / 2 * x Else y=3 End If MsgBox y, vbInformation, "输出" End Sub
格式 1:单行形式
If <条件表达式> Then <语句块>
格式 2:块形式
If <条件表达式> Then <语句块>
End If
执行过程:判断<条件表达式>的值,条件表达式的值若为 True,则执行 Then 后面的 语句块,若为 False,则什么也不做,直接执行 If 结构后面 的语句。执行流程图如图 5.2 所示。
80
Visual Basic 程序设计
If x < y Then t = x: x = y: y = t
块形式的写法是:
If x < y Then t=x x=y y=t
End If
5.2.2 双分支 If 语句
格式 1:单行形式
If <条件表达式> Then <语句块 1> Else <语句块 2>
入 x 值,若 InputBox 对话框输入的不是数值则弹出消息对话框;若是数值,则按下列分段
函数计算 y 的值,并用 MsgBox 消息对话框显示 y 的值。
⎧2x
-
1 2
x
⎪⎩ 3
x≤0 0<x<2
x≥ 2
程序的部分运行结果如图 5.6 所示。
图 5.6 例 5.3 的部分运行结果
5.3 Select Case 语句
另一种实现选择结构的语句是 Select Case 语句,使用它可以方便、直观地处理多分支 的控制结构。
其语法格式如下:
Select Case <测试表达式> Case <表达式列表 1> <语句块 1> Case <表达式列表 2> <语句块 2>
对比单分支 If 语句,双分支 If 语句多了 Else 分支。与单分支的格式要求类似,格式 1
中 If 语句必须在一行内书写完毕;格式 2 中 If…Then 行的后面不要写语句,将条件成立要
执行的所有语句放到 If…Then 和 Else 中间,Else 独立占一行,将条件不成立时要执行的所
有语句放到 Else 和 End If 中间,且必须以 End If 结束。
第 5 章 选择结构程序设计
在日常生活和工作中,经常会遇到各种各样的选择,根据选择的不同,会得到不同的 结果。在程序设计中,也经常会根据不同的情况执行不同的操作,这与现实生活中的选择 非常类似。但程序设计中的选择结构根据条件只能选择一个分支执行,即无论分支多寡, 必择其一;纵然分支众多,仅选其一。
本章主要介绍实现选择结构程序设计方面的知识,包括 If 语句、Select Case 语句、条 件函数的使用,最后介绍与选择结构相关的单选按钮、复选框和框架三个基本控件的使用。
分析: (1)界面设计。在窗体上添加所需的标签控件、文本框
图 5.4 例 5.2 的运行结果
第 5 章 选择结构程序设计
81
控件和命令按钮控件,并设置控件的相关属性。通过将文本框 Text2 的 PasswordChar 属性 设为“*”,使在文本框 2 中输入的文本显示为“*”。
(2)代码设计。根据题意要求,先从文本框中获取输入的用户名和密码,之后使用双 分支的 If 语句对姓名和密码进行条件判断,并根据判断结果,做出不同的处理。使用 setFocus 方法将光标移到文本框 1 中,即让文本框 1 获得焦点。
该题目是选择结构的典型应用。程序代码如下:
Private Sub Command1_Click() cj = Val(Text1) If cj < 0 Or cj > 100 Then MsgBox "输入的成绩无效" Text1.Text = "" Label1.Caption = "" ElseIf cj >= 90 Then Label3.Caption = "优" ElseIf cj >= 80 Then Label3.Caption = "良" ElseIf cj >= 70 Then Label3.Caption = "中" ElseIf cj >= 60 Then Label3.Caption = "及格" Else Label3.Caption = "不及格" End If
【例 5.2】 设计一个登录窗口,如图 5.4 所示。用户输
入用户名和密码,单击“登录”按钮对用户名和密码进行验
证。若用户名为“admin”,密码为“123456”,则弹出消息
框提示“登录成功!”;否则弹出消息框提示“用户名或密码
错误,请重新输入!”,并且将光标移到文本框 1 里,同时选
中文本框 1 的文本。
'若 w 的值为小于等于 0 的数,则 price 的值为 0
End If
84
Visual Basic 程序设计
Label5.Caption = price End Sub
思考:例 5.4 程序中 If 语句的第一个条件表达式“w > 0 And w <= 1”可以写成“w <= 1”吗?第二个条件表达式“w > 1 And w <= 10”可以写成“w <= 10”吗?为什么?
格式 2:块形式
If <条件表达式> Then <语句块 1>
Else <语句块 2>
End If
执行过程:判断<条件表达式>的值,若为 True,则执行 Then 后面的语句块 1,若为 False,则执行 Else 后面的语句块 2,执行流程图如图 5.3 所示。
图 5.3 双分支 If 语句流程图
注意: 在一个 If 语句中,条件表达式和语句块的个数没有限制,但最多只执行一个语句块, 被执行的语句块是依次判断条件表达式最先为 True 的那个分支。 If 语句中 ElseIf 这个词的中间没有空格。
82
Visual Basic 程序设计
图 5.5 多分支 If 语句流程图
【例 5.3】 计算分段函数的值。运行程序后,在窗体上单击,弹出 InputBox 对话框输
图 5.7 例 5.4 的运行结果
分析:使用文本框获得包裹的重量,用标签输出计算出来的应付运费。编写代码时, 首先从文本框中得到包裹重量的值,赋给变量 w,然后根据 w 的值的范围条件,分别计算 应付的运费。
程序代码如下:
Private Sub Command1_Click()
Dim w As Single, price As Single
程序代码如下:
Private Sub Command1_Click()
userN = Text1.Text
ps = Text2.Text
If userN = "admin" And ps = "123456" Then