首页 理论教育VisualFoxPro8.0数据库开发教程-程序流程与控制

VisualFoxPro8.0数据库开发教程-程序流程与控制

【摘要】:图3.5.1提示信息对话框1.IF分支格式如下:If <条件><语句序列1>Else<语句序列2>Endif统计数字的范围。图3.5.2命令按钮组程序代码如下:Set talk offDo caseCase This.Commandgroup1.Value=1Go topCase This.Commandgroup1.Value=2If!在职工基本情况表中查询职称为讲师的职工记录。

3.5 程序流程与控制

在Visual FoxPro 8.0中,程序常用的结构控制方式有3种,即顺序结构控制方式、分支结构控制方式和循环结构控制方式。

3.5.1 顺序结构控制方式

所谓顺序结构控制方式,是指程序在设计和运行过程中,按照一定的顺序执行。

【例3.1】在职工基本情况表(见表3.3)中添加职工记录,按照职工号、姓名、性别、年龄等顺序进行添加。

程序代码如下:

Set talk off

Clear

Use 职工基本情况表.dbf

Store space (6) to wnumber

Store space (8) to sname

Store space (2) to sex

Store space (2) to wyear

Store space (8) to proformance

Store space (4) to polity

Store space (6) to salary

Store space (10) to bio

@ 0,0 say “添加新职工”

@ 1,15 say “职工号” get wnumber

@ 2,15 say “姓名” get sname

@ 3,15 say “性别” get sex

@ 4,15 say “年龄” get wyear

@ 5,15 say “职称” get proformance

@ 6,15 say “政治面貌” get polity

@ 7,15 say “工资” get salary

@ 8,15 say “个人简历” get bio

@ 9,15 say “照片” get photo

Append Blank

Replace “职工号” with wnumber

Replace “姓名” with wnumber

Replace “性别” with sex

Replace “年龄” with wyear

Replace “职称” with proformance

Replace “政治面貌” with polity

Replace “工资” with salary

Replace “个人简历” with bio

Replace “照片” with photo

=messagebox(“添加成功!”)

Use

Set talk on

结果如图3.5.1所示。

3.5.2 分支结构控制方式

所谓分支控制方式,是指在当前几种可能的情况中选择一种情况来执行程序。

img82

图3.5.1 提示信息对话框

1.IF分支

格式如下:

If <条件>

<语句序列1>

Else

<语句序列2>

Endif

【例3.2】统计数字的范围。

程序代码如下:

Set talk off

Clear

Store 0 to m

Store 0 to n

Store 0 to p

Store 0 to q

Store 0 to a

Accept“请输入一个数:” to a

If a>100

m=m+1

Else

If a>10 and a<=100

n=n+1

Else

If a>1 and a<=10

p=p+1

Else

If a<=1

q=q+1

Endif

Endif

Endif

Endif

?m,n,p,q

Set talk on

结果如下:

img83

2.CASE分支

格式如下:

Do case

Case <条件1>

<语句序列1>

Case <条件2>

<语句序列2>

Case <条件3>

<语句序列3>

Other

<语句序列n>

Endcase

【例3.3】在命令按钮组中选择一个按钮。命令按钮组如图3.5.2所示。

img84(www.chuimin.cn)

图3.5.2 命令按钮组

程序代码如下:

Set talk off

Do case

Case This.Commandgroup1.Value=1

Go top

Case This.Commandgroup1.Value=2

If! Bof()

Skip -1

Endif

Case This.Commandgroup1.Value=3

If! Eof()

Skip

Endif

Case This.Commandgroup1.Value=4

Go bottom

Case This.Commandgroup1.Value=5

Thisform.release

Endcase

Thisform.refresh()

3.5.3 循环结构控制方式

所谓循环结构控制方式,是指在程序执行过程中同一个条件被执行多次。

1.For循环

格式如下:

For <条件>

<语句序列>

Endfor

功能:若满足条件,则重复执行语句序列。

【例3.4】计算img85的值。

程序代码如下:

Set talk off

Clear

Store 0 to a

Store 0 to s

For a=0 to 100

s=s+a

Endfor

a=a+1

?s

Set talk on

结果如下:

5050

【例3.5】计算10!的值。

程序代码如下:

Set talk off

A=1

For B=1 To 10

A=A*B

Endfor

?A

Set talk on

结果如下:

3628800

2.Do While循环

格式如下:

Do while <条件>

<语句序列>

Enddo

功能:如果满足条件,则重复执行语句序列。

【例3.6】计算一个数组

程序代码如下:

Set talk off

Dimension C (2, 3)

A=1

Do While A<=2

B=1

Do While B<=3

C(A,B)=A*B

?C

B=B+1

Enddo

?

A=A+1

Enddo

Return

Set talk on

结果如下:

img86

3.Scan循环

格式如下:

Scan <条件>

<语句序列>

Endscan

功能:如果满足当前打开表的范围条件,则执行语句序列。

【例3.7】在职工基本情况表(见表3.3)中查询职称为讲师的职工记录。

程序代码如下:

Set talk off

Use 职工基本情况表.dbf

Scan all for 职称=“讲师”

Display

Endscan

Set talk on

结果如下:

img87