在vb6.0里如何跳出双层for回圈

看了这里的解释还是不懂,求助大神!!
http://zhidao.baidu.com/question/121308488.html

goto语句可以,但是为了代码质量,请不要用goto

参考下面代码

For i = 1 To 100
  For j = 1 To 100
    '跳出双重循环
    Exit For  '这里只跳出了内层循环
  Next j
  If j <= 100 Then Exit For  '然后这里检测内层循环是否循环完毕,如果没有循环完毕而是跳出来的,那么跳出外层循环,这样就可以做到跳出双重循环
Next i

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-25

可以使用goto语句进行跳转,使用goto语句可以无条件的跳转到任意过程的指定行。

Private Sub Command1_Click()
Dim i As Long
For i = 0 To 100
GoTo 标号
Debug.Print "For 循环语句"
Next i
Exit Sub
标号:
Debug.Print "标号语句"
End Sub

上面的代码演示了goto语句的作用,可以看到goto语句可以再循环体内跳转到指定标号的那行,并执行标号后面的代码。程序运行可以看到在“立即”窗口输出了“标号语句”这句话,并没有输出“For 循环语句”这句话,证明Goto语句可以直接跳出循环。

追问

一般不是都应尽量避免使用goto叙述吗?
有没有其他的方法?

追答

其他的办法要看根据具体实现的功能来编写判断代码,远没有使用goto来的方便,任何事物都是有两面性的,goto语句可以说是一把双刃剑,用的不好,会破坏程序的结构,导致程序阅读和调试不便,但是,在某些方面,goto语句还是很好用的,比如在跳出循环这方面,在程序中只要不大量的使用goto语句就没事,不能因为尽量的避免就不用,该用的时候还是要用的。

第2个回答  2013-07-25
还用3层FOR循环,呵呵。
100万次啊。
结构有问题!!!
如果你的第二层与第三层循环没区别,为什么不合并为一个??
VB中具体跳转方法就是goto,exit for ,剩下的就得你采用if,while 等来考虑调整你程序的结构了。追问

我的状况更复杂一点,是一个关於二维阵列的问题,所以必须使用双层for回圈

追答

二维矩阵我一般是采用如下的办法:
i为行,j为列。for i=a to b
for j= c to d
if XX=true then
end if
'如果需要继续在j中处理,直接退出if语句即可
'如果需要转到i中处理,直接应用exit for退出当前靠近的for循环
'如果需要转到双循环外处理,可以考虑用while条件循环来实现更加方便 即for + while配合来实现了。

追问

可以给个范例吗?

追答

哦。这个还真没有,呵呵,以前的代码大部分丢失了。

第3个回答  2013-07-25
输入exit for推出一次for循环