在程序设计中或解决一些实际问题时,都会遇到需要重复相同操作时,即多次执行某一条语句或某些语句序列,在此种情况下可以使用循环语句,在满足条件的前提下重复执行一行或几行程序代码。
在VBA中,循环语句有3种:
(1)For…Next语句。
(2)Do…Loop语句。
(3)While…Wend语句。
1. For…Next 语句
For…Next循环语句一般用于循环次数已经确定或已知循环结束条件的情况,主要用于实现“次数型”循环。其格式如下:
For语句的执行步骤如下:
(1)给循环变量取初值。
(2)根据循环变量与终值的比较结果,确定循环是否继续进行。
(3)执行循环体。
(4)循环变量值增加步长,即循环变量=循环变量+步长,程序跳转到第(2)步。 For循环语句的执行流程图如图8-19所示。
图8-19 For循环语句的执行流程
例8-18 利用For…Next循环语句,输出1+2+…+100之和的结果。窗口界面如图8-20所示,代码如图8-21所示。
图8-20 窗体机界面
图8-21 代码界面
由图8-21代码可知,先给循环变量n赋初值1,再与终值100进行比较,如果循环变量小于100,则执行循环体语句,最终把求和结果的值赋给文本框控件Text1中。
思考:计算以下两题:
2. Do…Loop 语句
Do…Loop语句主要用来定义要多次执行的语句块或一个条件,当这个条件为False时,就结束循环。Do…Loop语句的两种格式如下:
(1)Do While…Loop。
功能:当条件式的结果为True时,则重复执行循环体。一直持续到当条件式结果为False或执行到Exit Do时,则结束整个循环。程序流程图如图8-22所示。其语句格式如下:
例8-19 用Do While…Loop语句计算1+2+…+100的和。(www.xing528.com)
程序代码如图8-23所示,流程图如图8-22所示。
图8-22 Do While…Loop语句流程
思考:对比例8-18和例8-19,同一个题目,实现的程序语句不一样,差别在哪里?
(2)Do Until…Loop。
功能:当条件式的结果为False时,则重复执行循环体。一直持续到当条件式结果为True或执行到Exit Do时,则结束整个循环。结构流程图如图8-24所示。
其语句格式如下:
图8-23 例8-19程序代码
图8-24 Do Until…Loop循环语句流程
例8-20 用Do Until…Loop语句计算1+2+…+100的和。
代码如下:
思考:对比例8-19和例8-20,同一个题目,用Do While…Loop和Do Until…Loop实现的程序结果一样,那差别在哪里?
3. While…Wend语句
功能:While…Wend语句适用于只知道了控制条件,但不知道到底需要执行多少次循环体才能结束循环,即执行的次数根据条件而进行变动。它与事先就能确定循环次数的For…Next循环完全不同。
While语句格式如下:
注:While:循环的开始。
条件:任何合法的关系表达式或逻辑表达式。当表达式为真时,循环将继续执行循环体;当表达式为假时,则不执行循环体。
循环体:由一条或多条语句组成,可反复执行的语句。但While循环语句不能修改循环条件,为避免死循环,我们必须在循环体内设置相应的语句,以便能让整个循环趋于结束。
Wend:循环的结尾。将对条件进行求值以确定是否要结束循环。
While…Wend循环语句流程图如图8-25所示。
图8-25 While…Wend循环语句流程
例8-21 分析下列程序代码实现何功能?
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。