还是关于VB循环语句的问题

来源:百度知道 编辑:UC知道 时间:2024/05/22 12:53:07
Dim xh As Integer
Dim temp As Integer
Dim js1 As Integer
js1 = 8

For xh = 1 To js1

If Not rs.EOF Then

If rs.Fields(3) = nam(0).Caption Then js1 = js1 + 1: GoTo net
If rs.Fields(3) = nam(1).Caption Then js1 = js1 + 1: GoTo net
If rs.Fields(3) = nam(2).Caption Then js1 = js1 + 1: GoTo net
If rs.Fields(3) = nam(3).Caption Then js1 = js1 + 1: GoTo net
If rs.Fields(3) = nam(4).Caption Then js1 = js1 + 1: GoTo net
If rs.Fields(3) = nam(5).Caption Then js1 = js1 + 1: GoTo net
If rs.Fields(3) = nam(6).Caption Then js1 = js1 + 1: GoTo net
If rs.Fields(3) = nam(7).Caption Then js1 = js1 + 1: GoTo net

gexing1.nam(xh - 1).Caption = rs.Fields(3).Value
If Dir(App.Path & "\歌星图片\" & rs.Fields(3) & ".jpg") <> "" Then Picture1(xh - 1).Picture = LoadPicture(App.Path & "\歌星图片\" & rs.Fields(3) & ".jpg")

net:
rs.MoveNext

上次有个朋友提过类似问题,结合MSDN上的说法,我的理解是这样,循环开始时会建立一个循环条件,循环条件在循环过程中不会被改变,如果step是正数,循环条件应为循环变量(计数器)小于等于计数器的终值,注意这里,MSDN中从未将终值描述成为变量,而对于计数器才描述其为变量,举例说明:
e=10
for i=1 to e
确定后的循环条件应为i<=10,i是变量,可以改变,i<=10这个条件本身不会改变
所以循环体中修改i会改变循环的次数,而修改e不会,因为e并不在循环条件中
i=1
加这样一句,循环将永远进行不会停止
i=11
加这样一句,则运行到next后自动退出循环

另外注意一点,循环次数总是比你想像的要多一次,只不过最后一次循环只对循环条件进行比对,由于不满足循环条件而自动退出了循环,所以最后一次循环并未执行循环体的代码段
举例说明:
for i=1 to 10
当循环结束时,i不可能等于10,因为step为正数,循环条件应为i<=10,所以i=10时是满足循环条件的,再循环一次,计数器i被加上步长(默认为1)之后成为11,再与循环条件进行比对,发现不满足i<=10的循环条件,这才退出循环

在进入For语句时,程序已经认定了它的循环终止变量js1=8,在循环过程中,这个变量是不会改变的。因此循环是1 to 8 是,而不是1 to 9或其他。

如果用 do while 语句就是9
用while do 或 if或for 语句就是1到8的 每个语言都这样