- 24
- 0
- 约 5页
- 2017-03-05 发布于重庆
- 举报
Access中VBA流程控制语句
Access中VBA流程控制语句——循环语句[1]
循环语句 循环语句可以实现重复执行一行或几行程序代码。VBA支持以下循环语句结构:For-Next、Do-Loop和While-Wend。 1.For-Next语句 For-Next语句能够重复执行程序代码区域特定次数,使用格式如下: For 循环变量=初值 To 终值[Step步长] 循环体 [条件语句序列 Exit For 结束条件语句序列] Next[循环变置] 其执行步骤(a-d)为: a.循环变量取初值; b.循环变量与终值比较,确定循环是否进行: 步长0时 若循环变量值=终值,循环继续,执行步骤c;若循环变量值终值,循环结束,退出循环。 步长=0时 若循环变量值=终值,死循环;若循环变量值终值,一次也不执行循环。 步长0时 若循环变量值=终值,循环继续,执行步骤c;若循环变量值终值,循环结束,退出循环。 c.执行循环体; d.循环变量值增加步长不(循环变量=循环变量+步长),程序跳转至b。 循环变量的值如果在循环体内不被更改,则循环执行次数可以使用公式“循环次数=(终值-初值+1)/步长”计算。例如,如果初值=5,终值=10,且步长=2,则循环体的执行重复(10-5+1)/2=3次。但如果循环变量的值在循环体内被更改,则不能适用上述公式来计算循环次数。For语句的流程如图8.18所示。
例8.12 分析下列程序段的循环结构: For K=5 to 10 Step 2 K=2*K Next K 按照公式计算,循环次数为:(10-5+1)/2=3次。但这是错误的。实际上,该循环的循环次数为只有1次(循环变置先后取值5和12,循环执行一次后,循环变置值为12,超过终值10,循环结束)。 步长为1时,关键字Step可以省略。步长一般是整数取值,用实数也可以,但不常见。 如果终值小于初值,步长要取负值;否则,For-Next语句会被忽略,循环体一次也不执行。 如果在For-Next循环中,步长为0,该循环便会重复执行无数次,造成“死循环”。 选择性的Exit For语句可以组织在循环体中的If-Then-End If条件语句结构中,用来提前中断并退出循环。 For-Next循环结束,则程序从Nect的下一行语句继续执行。 在实际应用中,For-Next循环还经常与数组配合操作数组元素。 例8.13 将A到Z的大写字母赋予字符数组str$()。 For I=1 To 26 str$(I)=Chr$(I+64) 大写字母“A”的ASII码值为65 Next I 例8.14 在立即窗口中显示有星号(*)组成的5×5的正方形。 Sub Procedure5() Const MAX=5 Dim Str As String Str= For n=1 To MAX Str=Str+* Next n For n=1 To MAX Debug.Print str Next n End Sub
2.Do While-Loop语句 使用格式如下: Do While条件式 循环体 [条件语句序列 Exit Do 结束条件语句序列] Loop 这个循环结构是在条件式结果为真时,执行循环体,并持续到条件式结果为假或执行到选择性Exit Do语句而退出循环,循环流程如图8.19所示。
例8.15 用Do While-Loop语句,完成例8.12大写英文26个字母向数组元素赋值的功能。代码如下: I=1 Do While I=26 Str$(I)=Chr$(I+64) I=I+1 Loop 例8.16 已知斐波那契序列的定义如下: f(0)=0,f(1)=1 f(n)=f(n-1)+f(n-2) 当n=2时 编写程序,在立即窗口中显示n为2到10时对应的序列值。代码如下: Sub Procedure6() n=1 f1=0 f2=1 Do While n10 f=f1+f2 Debug.Print f f1=f2 f2=f n=n+1 Loop End Sub
3.Do Until-Loop语句 与Do While-Loop结构相对应,还有另一个Do循环结构,Do Until-Loop结构。该结构是条件式值为假时,重复执行循环,直至条件式值为真,结束循环。 循环流程如图8.20所示。
使用格式如下: Do Until条件式 循环体 [条件语句序列 Exit
原创力文档

文档评论(0)