第 5章 选择结构程序设计第 5章 选择结构程序设计
5.1 条件表达式
5.2 条件选择语句
5.3 提供简单选择的控件
5.4 计时器与微调器
5.5 键盘事件第 5章 选择结构程序设计选择结构是计算机科学用来描述自然界和社会生活中分支现象的重要手段。其特点是:根据所给定的条件为真(即条件成立)与否,而决定从各实际可能的不同分支中执行某一分支的相应操作,并且任何情况下总有:“无论分支多寡,必择其一;纵然分支众多,仅选其一”的特性。
第 5章 选择结构程序设计
5.1 条件表达式在条件语句中作为判断依据的表达式称为,条件表达式,,条件表达式的取值为逻辑值:真 (,T.,.t.)
或假 (,F.,.f.) 。
根据“条件”的简单或复杂程度,条件表达式可以分为两类:关系表达式与逻辑表达式。
第 5章 选择结构程序设计
5.1.1 关系运算符与关系表达式关系表达式是指用关系运算符将两个表达式连接起来的式子 ( 例如 x > 0),关系运算符又称比较运算符,
用来对两个表达式的值进行比较,比较的结果是一个逻辑值 (,T,或,F.),这个结果就是关系表达式的值 。
VFP提供的关系运算符有 8种,见表 5-1。
第 5章 选择结构程序设计表 5-1 VFP中的关系运算符运算符 名 称 示 例
< 小于 2 < 3 值为,.T.
<= 小于或等于 2 + 3 <= 1 + 2 值为,.F.
> 大于 5 > 2 + 3 值为,.F.
>= 大于或等于 "abc" >= "abd" 值为,.F.
= 等于 4 + 3 = 2 + 5 值为,.T.
<>,#,!= 不等于 7 <> 2 + 5 值为,.F.
$ 包含于 "AB" $ "ABCD" 值为,.T.
== 等同于第 5章 选择结构程序设计
5.1.2 逻辑运算符与逻辑表达式逻辑表达式是指用逻辑运算符连接若干关系表达式或逻辑值而成的式子 。 如不等式,2≤ x ≤ 10可以表示为:
2 <= x AND x <= 10。 逻辑表达式的值也是一个逻辑值 。
VFP提供的逻辑运算符有以下 3种,见表 5-2。
第 5章 选择结构程序设计表 5-2 逻辑运算符运算符名称 示 例
NOT 非 NOT (3 < 2) 值为,.T.,(由真变假或由假变真,进行取“反”操作)
AND 与
(2 > 3) AND (1 < 2) 值为,.F.,
(两个表达式的值均为真,结果才为真,否则为假
)
OR 或
(2 > 3) OR (1 < 2) 值为,.T.,
(两个表达式中只要有一个值为真,结果就为真,
只有两个表达式的值均为假,结果才为假)
第 5章 选择结构程序设计逻辑运算的运算规则,见表 5-3。
表 5-3 逻辑运算真值表
a b NOT a a AND b a OR b
.T.,T.,F.,T.,T.
.T.,F.,F.,F.,T.
.F.,T.,T.,F.,T.
.F.,F.,T.,F.,F.
第 5章 选择结构程序设计
5.1.3 运算符的优先顺序表 5-4 运算符的优先顺序优先顺序运算符类型 运算符运算符类型 运算符
1
算术运算符
^(指数运算)
字符串运算符
+,–(字符串连接)
2 -(负数)
3 *,/(乘法和除法)
4 %(求模运算)
5 +,–(加法和减法)
6 关系运算 符 =,<>,<,>,<=,>=,$,==
7
逻辑运算符
NOT
8 AND
9 OR
第 5章 选择结构程序设计
5.2 条件选择语句
5.2.1 单条件选择语句 IF
单条件选择语句 IF实现的是最常用的双分支选择,
其特点是:根据所给定的选择条件(条件表达式)的值为真与否,来执行相应的分支。
第 5章 选择结构程序设计
1,IF语句的语法格式单条件选择语句 IF的语法格式为:
IF 〈 条件 〉
[〈 语句列 1〉 ]
[ELSE
[〈 语句列 2〉 ]
ENDIF
第 5章 选择结构程序设计说明:
(1) 如果 〈 条件 〉 为真 (,T.),就执行 〈 语句列
1〉 。 如果 〈 条件 〉 为假 (,F.),若有 ELSE子句,则程序会执行 ELSE部分的 〈 语句列 2〉 ;若无 ELSE子句,
则程序会直接转到 ENDIF之后的语句继续执行 。
(2)〈 语句列 1〉 和 〈 语句列 2〉 中还可以包含 IF语句,称为 IF语句的嵌套。要注意,每次嵌套中的 IF语句必须与 ENDIF成对出现。
第 5章 选择结构程序设计
2,使用 IIF函数还可以使用 IIf函数来实现一些比较简单的选择结构 。
IIf函数的语法结构为:
IIf(〈 条件 〉,〈 真部分 〉,〈 假部分 〉 )
语句 y = IIf(条件,真部分,假部分 ) 相当于:
IF 条件
y = 真部分
ELSE
y = 假部分
ENDIF
第 5章 选择结构程序设计
3,IF语句的嵌套如果在 IF语句中操作块 a1块(语句列 1)或 a2块
(语句列 2)本身又是一个 IF语句,则称为 IF语句的嵌套。
第 5章 选择结构程序设计
5.2.2 多分支条件选择语句 DO CASE
多分支选择结构的根本特点是:从多个分支中,
选择第一个条件为真的路线作为执行的路线 。
第 5章 选择结构程序设计
DO CASE语句的语法格式为:
DO CASE
CASE〈 条件 1〉
[〈 语句列 1〉 ]
[CASE〈 条件 2〉
[〈 语句列 2〉 ]]
...
[OTHERWISE
[〈 其他语句列 〉 ]]
ENDCASE
第 5章 选择结构程序设计说明:
(1) 在执行 DO CASE语句时,依次判断各 〈 条件 〉 是否满足 。 若 〈 条件 1〉 的值为真 (,T.),就执行相应的
〈 语句列 1〉,直到遇到下一个 CASE,OTHERWISE或
ENDCASE。
(2) 相应的 〈 语句列 1〉 执行后不再判断其他 〈 条件 〉,
直接转向 ENDCASE后面的语句 。 因此,在一个 DO CASE结构中,最多只能执行一个 CASE子句 。
(3) 如果没有一个条件为真,就执行 OTHERWISE后面的
〈 其他语句列 〉,直到 ENDCASE。如果没有 OTHERWISE,
则不作任何操作就转向 ENDCASE后面的语句。
第 5章 选择结构程序设计
5.3 提供简单选择的控件
5.3.1 命令按钮组如果表单上需要使用多个命令按钮,可以将这些命令按钮组合为一组,即命令按钮组
( Commandgroup)。
第 5章 选择结构程序设计
1,命令按钮组命令按钮组是一个容器对象,其中包含命令按钮 。
命令按钮组的 Value属性指示单击了那个按钮 。
命令按钮组的 ButtonCount属性用来设置命令按钮组中按钮的个数,ButtonCount属性的默认值为 2。
第 5章 选择结构程序设计
2,按钮组生成器利用按钮组生成器可以更方便地设计命令按钮组 。
(1) 用鼠标右键单击命令按钮组控件 CommandGroup1,
在弹出菜单中选择,生成器,,打开,命令组生成器,。
(2) 在,按钮,选项卡中,修改,按钮的数目,,再修改按钮的,标题,( Caption属性 ) 。
(3) 在,布局,选项卡中指定命令按钮组的排列方式,
如水平或垂直,有无边框等 。
(4) 最后单击“确定”按钮退出命令组生成器。
第 5章 选择结构程序设计
5.3.2 选项按钮组
1,选项组与选项组生成器选项按钮组是一组相互排斥的选项按钮(或称为单选按钮)。一般来说,选项按钮总是成组(选项按钮组)出现,用户在一组选项按钮中必须选择一项,
并且最多只能选择一项。当某一项被选定后,其左边的圆圈中出现一个黑点。
第 5章 选择结构程序设计创建选项按钮组时,系统仅提供两个选项按钮 。
通过改变按钮数 ( ButtonCount) 属性,可以增加更多的选项按钮 。
选项按钮组是一个容器类控件,设计时,用鼠标右键单击选项按钮组,从快捷菜单中选择,编辑,。
此时,选项按钮组的周围出现浅色边界,即可对选项按钮组内的选项按钮进行编辑了 。
设计选项组最方便的办法是利用“生成器”。
第 5章 选择结构程序设计
2,选项组的图形方式可以将选项组设计成图形按钮的形式。
第 5章 选择结构程序设计
5.3.3 复选框复选框 ( CheckBox) 的左边有一个,□” 。 复选框列出可供用户选择的选项,用户根据需要选定其中的一项或多项 。 当某一项被选中后,其左边的小方框中就多了一个对号,√” 。
复选框的 Caption属性可以指定出现在复选框旁边的文本,而 Picture属性用来指定当复选框被设计成图形按钮时的图象。
第 5章 选择结构程序设计复选框的状态由其 Value属性决定:
0或,F,—— 假
1或,T,—— 真
2或,NULL,—— 暗第 5章 选择结构程序设计
5.4 计时器与微调器
5.4.1 使用计时器计时器( Timer)控件能有规律地以一定的时间间隔激发计时器事件( Timer)而执行相应的事件代码。
计时器控件在设计时显示为一个小时钟图标,而在运行时并不显示在屏幕上,通常用标签来显示时间。
第 5章 选择结构程序设计计时器控件的主要属性见表 5-8。
表 5-8 Timer控件的主要属性属 性 说 明
Enanled 该属性为 True时,定时器开始工作,为 False时暂停
Interval 该属性用来设置定时器触发的周期 ( 以毫秒计 ) 取值范围为 0~ 64767
第 5章 选择结构程序设计
Interval(时间间隔)属性是一个非常重要的属性,
表示两个计时器事件之间的时间间隔,其值以毫秒
( ms)为单位,介于 0~ 64767ms之间,所以最大的时间间隔约为 1.5min。当 Interval为 0时表示屏蔽计时器。
如果希望每一秒产生一个计时器事件,那么 Interval属性值应设为 1000,这样,每隔 1000ms(即 1秒)就激发计时器事件,从而执行相应的 Interval事件过程。
第 5章 选择结构程序设计
5.4.2 使用微调器微调器( Spinner)控件可以在一定范围内控制数据的变化。除了能够用鼠标单击控件右边向上和向下的箭头来增加和减少数字以外,还能象编辑框那样直接输入数值数据。
第 5章 选择结构程序设计微调器的主要属性有:
(1) KeyboardHighValue和 KeyboardLowValue属性:
用来控制用户通过键盘输入的值 。
(2) SpinnerHighValue和 SpinnerLowValue属性:用来控制用户通过鼠标单击箭头获得的值 。
(3) Interval属性:用来设定数值增加或减少的量。
要颠倒箭头的功能(向上箭头减少,向下箭头增加)可以把 Interval设为负数。
第 5章 选择结构程序设计
5.5 键盘事件在 VFP中则使用键盘事件 ( KeyPress) 来响应各种按键操作 。 通过编写键盘事件的代码,可以响应和处理大多数的按键操作,解释并处理 ASCII字符 。
KeyPress事件当用户按下并松开某个键时发生 。 其语法为:
LPARAMETERS nKeyCode,nShiftAltCtrl
说明:
(1) nKeyCode是一个数值,一般表示被按下字符键的
ASCII码 。
(2) nShiftAltCtrl 参数表示按下的组合键( 〈 Shift〉,
〈 Ctrl〉,〈 Alt〉 )。
5.1 条件表达式
5.2 条件选择语句
5.3 提供简单选择的控件
5.4 计时器与微调器
5.5 键盘事件第 5章 选择结构程序设计选择结构是计算机科学用来描述自然界和社会生活中分支现象的重要手段。其特点是:根据所给定的条件为真(即条件成立)与否,而决定从各实际可能的不同分支中执行某一分支的相应操作,并且任何情况下总有:“无论分支多寡,必择其一;纵然分支众多,仅选其一”的特性。
第 5章 选择结构程序设计
5.1 条件表达式在条件语句中作为判断依据的表达式称为,条件表达式,,条件表达式的取值为逻辑值:真 (,T.,.t.)
或假 (,F.,.f.) 。
根据“条件”的简单或复杂程度,条件表达式可以分为两类:关系表达式与逻辑表达式。
第 5章 选择结构程序设计
5.1.1 关系运算符与关系表达式关系表达式是指用关系运算符将两个表达式连接起来的式子 ( 例如 x > 0),关系运算符又称比较运算符,
用来对两个表达式的值进行比较,比较的结果是一个逻辑值 (,T,或,F.),这个结果就是关系表达式的值 。
VFP提供的关系运算符有 8种,见表 5-1。
第 5章 选择结构程序设计表 5-1 VFP中的关系运算符运算符 名 称 示 例
< 小于 2 < 3 值为,.T.
<= 小于或等于 2 + 3 <= 1 + 2 值为,.F.
> 大于 5 > 2 + 3 值为,.F.
>= 大于或等于 "abc" >= "abd" 值为,.F.
= 等于 4 + 3 = 2 + 5 值为,.T.
<>,#,!= 不等于 7 <> 2 + 5 值为,.F.
$ 包含于 "AB" $ "ABCD" 值为,.T.
== 等同于第 5章 选择结构程序设计
5.1.2 逻辑运算符与逻辑表达式逻辑表达式是指用逻辑运算符连接若干关系表达式或逻辑值而成的式子 。 如不等式,2≤ x ≤ 10可以表示为:
2 <= x AND x <= 10。 逻辑表达式的值也是一个逻辑值 。
VFP提供的逻辑运算符有以下 3种,见表 5-2。
第 5章 选择结构程序设计表 5-2 逻辑运算符运算符名称 示 例
NOT 非 NOT (3 < 2) 值为,.T.,(由真变假或由假变真,进行取“反”操作)
AND 与
(2 > 3) AND (1 < 2) 值为,.F.,
(两个表达式的值均为真,结果才为真,否则为假
)
OR 或
(2 > 3) OR (1 < 2) 值为,.T.,
(两个表达式中只要有一个值为真,结果就为真,
只有两个表达式的值均为假,结果才为假)
第 5章 选择结构程序设计逻辑运算的运算规则,见表 5-3。
表 5-3 逻辑运算真值表
a b NOT a a AND b a OR b
.T.,T.,F.,T.,T.
.T.,F.,F.,F.,T.
.F.,T.,T.,F.,T.
.F.,F.,T.,F.,F.
第 5章 选择结构程序设计
5.1.3 运算符的优先顺序表 5-4 运算符的优先顺序优先顺序运算符类型 运算符运算符类型 运算符
1
算术运算符
^(指数运算)
字符串运算符
+,–(字符串连接)
2 -(负数)
3 *,/(乘法和除法)
4 %(求模运算)
5 +,–(加法和减法)
6 关系运算 符 =,<>,<,>,<=,>=,$,==
7
逻辑运算符
NOT
8 AND
9 OR
第 5章 选择结构程序设计
5.2 条件选择语句
5.2.1 单条件选择语句 IF
单条件选择语句 IF实现的是最常用的双分支选择,
其特点是:根据所给定的选择条件(条件表达式)的值为真与否,来执行相应的分支。
第 5章 选择结构程序设计
1,IF语句的语法格式单条件选择语句 IF的语法格式为:
IF 〈 条件 〉
[〈 语句列 1〉 ]
[ELSE
[〈 语句列 2〉 ]
ENDIF
第 5章 选择结构程序设计说明:
(1) 如果 〈 条件 〉 为真 (,T.),就执行 〈 语句列
1〉 。 如果 〈 条件 〉 为假 (,F.),若有 ELSE子句,则程序会执行 ELSE部分的 〈 语句列 2〉 ;若无 ELSE子句,
则程序会直接转到 ENDIF之后的语句继续执行 。
(2)〈 语句列 1〉 和 〈 语句列 2〉 中还可以包含 IF语句,称为 IF语句的嵌套。要注意,每次嵌套中的 IF语句必须与 ENDIF成对出现。
第 5章 选择结构程序设计
2,使用 IIF函数还可以使用 IIf函数来实现一些比较简单的选择结构 。
IIf函数的语法结构为:
IIf(〈 条件 〉,〈 真部分 〉,〈 假部分 〉 )
语句 y = IIf(条件,真部分,假部分 ) 相当于:
IF 条件
y = 真部分
ELSE
y = 假部分
ENDIF
第 5章 选择结构程序设计
3,IF语句的嵌套如果在 IF语句中操作块 a1块(语句列 1)或 a2块
(语句列 2)本身又是一个 IF语句,则称为 IF语句的嵌套。
第 5章 选择结构程序设计
5.2.2 多分支条件选择语句 DO CASE
多分支选择结构的根本特点是:从多个分支中,
选择第一个条件为真的路线作为执行的路线 。
第 5章 选择结构程序设计
DO CASE语句的语法格式为:
DO CASE
CASE〈 条件 1〉
[〈 语句列 1〉 ]
[CASE〈 条件 2〉
[〈 语句列 2〉 ]]
...
[OTHERWISE
[〈 其他语句列 〉 ]]
ENDCASE
第 5章 选择结构程序设计说明:
(1) 在执行 DO CASE语句时,依次判断各 〈 条件 〉 是否满足 。 若 〈 条件 1〉 的值为真 (,T.),就执行相应的
〈 语句列 1〉,直到遇到下一个 CASE,OTHERWISE或
ENDCASE。
(2) 相应的 〈 语句列 1〉 执行后不再判断其他 〈 条件 〉,
直接转向 ENDCASE后面的语句 。 因此,在一个 DO CASE结构中,最多只能执行一个 CASE子句 。
(3) 如果没有一个条件为真,就执行 OTHERWISE后面的
〈 其他语句列 〉,直到 ENDCASE。如果没有 OTHERWISE,
则不作任何操作就转向 ENDCASE后面的语句。
第 5章 选择结构程序设计
5.3 提供简单选择的控件
5.3.1 命令按钮组如果表单上需要使用多个命令按钮,可以将这些命令按钮组合为一组,即命令按钮组
( Commandgroup)。
第 5章 选择结构程序设计
1,命令按钮组命令按钮组是一个容器对象,其中包含命令按钮 。
命令按钮组的 Value属性指示单击了那个按钮 。
命令按钮组的 ButtonCount属性用来设置命令按钮组中按钮的个数,ButtonCount属性的默认值为 2。
第 5章 选择结构程序设计
2,按钮组生成器利用按钮组生成器可以更方便地设计命令按钮组 。
(1) 用鼠标右键单击命令按钮组控件 CommandGroup1,
在弹出菜单中选择,生成器,,打开,命令组生成器,。
(2) 在,按钮,选项卡中,修改,按钮的数目,,再修改按钮的,标题,( Caption属性 ) 。
(3) 在,布局,选项卡中指定命令按钮组的排列方式,
如水平或垂直,有无边框等 。
(4) 最后单击“确定”按钮退出命令组生成器。
第 5章 选择结构程序设计
5.3.2 选项按钮组
1,选项组与选项组生成器选项按钮组是一组相互排斥的选项按钮(或称为单选按钮)。一般来说,选项按钮总是成组(选项按钮组)出现,用户在一组选项按钮中必须选择一项,
并且最多只能选择一项。当某一项被选定后,其左边的圆圈中出现一个黑点。
第 5章 选择结构程序设计创建选项按钮组时,系统仅提供两个选项按钮 。
通过改变按钮数 ( ButtonCount) 属性,可以增加更多的选项按钮 。
选项按钮组是一个容器类控件,设计时,用鼠标右键单击选项按钮组,从快捷菜单中选择,编辑,。
此时,选项按钮组的周围出现浅色边界,即可对选项按钮组内的选项按钮进行编辑了 。
设计选项组最方便的办法是利用“生成器”。
第 5章 选择结构程序设计
2,选项组的图形方式可以将选项组设计成图形按钮的形式。
第 5章 选择结构程序设计
5.3.3 复选框复选框 ( CheckBox) 的左边有一个,□” 。 复选框列出可供用户选择的选项,用户根据需要选定其中的一项或多项 。 当某一项被选中后,其左边的小方框中就多了一个对号,√” 。
复选框的 Caption属性可以指定出现在复选框旁边的文本,而 Picture属性用来指定当复选框被设计成图形按钮时的图象。
第 5章 选择结构程序设计复选框的状态由其 Value属性决定:
0或,F,—— 假
1或,T,—— 真
2或,NULL,—— 暗第 5章 选择结构程序设计
5.4 计时器与微调器
5.4.1 使用计时器计时器( Timer)控件能有规律地以一定的时间间隔激发计时器事件( Timer)而执行相应的事件代码。
计时器控件在设计时显示为一个小时钟图标,而在运行时并不显示在屏幕上,通常用标签来显示时间。
第 5章 选择结构程序设计计时器控件的主要属性见表 5-8。
表 5-8 Timer控件的主要属性属 性 说 明
Enanled 该属性为 True时,定时器开始工作,为 False时暂停
Interval 该属性用来设置定时器触发的周期 ( 以毫秒计 ) 取值范围为 0~ 64767
第 5章 选择结构程序设计
Interval(时间间隔)属性是一个非常重要的属性,
表示两个计时器事件之间的时间间隔,其值以毫秒
( ms)为单位,介于 0~ 64767ms之间,所以最大的时间间隔约为 1.5min。当 Interval为 0时表示屏蔽计时器。
如果希望每一秒产生一个计时器事件,那么 Interval属性值应设为 1000,这样,每隔 1000ms(即 1秒)就激发计时器事件,从而执行相应的 Interval事件过程。
第 5章 选择结构程序设计
5.4.2 使用微调器微调器( Spinner)控件可以在一定范围内控制数据的变化。除了能够用鼠标单击控件右边向上和向下的箭头来增加和减少数字以外,还能象编辑框那样直接输入数值数据。
第 5章 选择结构程序设计微调器的主要属性有:
(1) KeyboardHighValue和 KeyboardLowValue属性:
用来控制用户通过键盘输入的值 。
(2) SpinnerHighValue和 SpinnerLowValue属性:用来控制用户通过鼠标单击箭头获得的值 。
(3) Interval属性:用来设定数值增加或减少的量。
要颠倒箭头的功能(向上箭头减少,向下箭头增加)可以把 Interval设为负数。
第 5章 选择结构程序设计
5.5 键盘事件在 VFP中则使用键盘事件 ( KeyPress) 来响应各种按键操作 。 通过编写键盘事件的代码,可以响应和处理大多数的按键操作,解释并处理 ASCII字符 。
KeyPress事件当用户按下并松开某个键时发生 。 其语法为:
LPARAMETERS nKeyCode,nShiftAltCtrl
说明:
(1) nKeyCode是一个数值,一般表示被按下字符键的
ASCII码 。
(2) nShiftAltCtrl 参数表示按下的组合键( 〈 Shift〉,
〈 Ctrl〉,〈 Alt〉 )。