我在循环中做嵌套的if
,基本上是:
1: For i = 1 To n
If condition1 Then
2: For j = 1 To m
If condition2 Then
3: For k = 1 To p
If condition3 Then
statement1
End If
Next k
End If
Next j
End If
Next i
在statement1
之后,我想Exit
循环2
和3
并直接去1
。
但是,如果我使用Exit For
,这将只退出3
。如果我在1
之前添加一行,然后使用GoTo
来引用它,它将无法工作,因为程序必须以1
开头。
您可以使用帮助器Boolean
变量来标记何时退出循环2,如下所示
Dim exitLoop2 As Boolean
For i = 1 To n
If condition1 Then
exitLoop2 = False ' set it to false at the beginning of any loop 2
For j = 1 To m
If condition2 Then
For k = 1 To p
If condition3 Then
exitLoop2 = True ' this will make you exit loop 2 once out of loop 3
Exit For ' this will exit loop 3
'statement1
End If
Next
End If
If exitLoop2 Then Exit For ' exit loop 2 if needed
Next
End If
Next
有更优雅的方式。将您需要的代码包装到虚拟Do ... Loop Until True
块中,然后使用Exit Do
立即退出。
For i = 1 To n
Do
If condition1 Then
For j = 1 To m
If condition2 Then
For k = 1 To p
If condition3 Then
statement1
Exit Do
End If
Next k
End If
Next j
End If
Loop Until True
Next i