如何退出vb.net中的嵌套for或循环?
我尝试使用exit,但它只跳转或断开一个for循环。
如何进行以下操作:
for each item in itemList
for each item1 in itemList1
if item1.text = "bla bla bla" then
exit for
end if
end for
end for
答案 0 :(得分:188)
不幸的是,没有exit two levels of for
声明,但有一些解决方法可以做你想要的事情:
<强>转到即可。一般来说,使用goto
是considered to be bad practice(并且正确地如此),但仅使用goto
来跳转结构化控制语句通常被认为是正常的,特别是如果替代方案是有更复杂的代码。
For Each item In itemList
For Each item1 In itemList1
If item1.Text = "bla bla bla" Then
Goto end_of_for
End If
Next
Next
end_of_for:
虚拟外部块
Do
For Each item In itemList
For Each item1 In itemList1
If item1.Text = "bla bla bla" Then
Exit Do
End If
Next
Next
Loop While False
或
Try
For Each item In itemlist
For Each item1 In itemlist1
If item1 = "bla bla bla" Then
Exit Try
End If
Next
Next
Finally
End Try
单独的功能:将循环放在一个单独的函数中,可以使用return
退出。但是,这可能需要您传递大量参数,具体取决于您在循环中使用的局部变量数量。另一种方法是将块放入多行lambda,因为这会在局部变量上创建一个闭包。
布尔变量:这可能会使您的代码的可读性降低,具体取决于您拥有多少层嵌套循环:
Dim done = False
For Each item In itemList
For Each item1 In itemList1
If item1.Text = "bla bla bla" Then
done = True
Exit For
End If
Next
If done Then Exit For
Next
答案 1 :(得分:16)
将循环放在子程序中并调用return
答案 2 :(得分:3)
使外循环成为while循环,并在if语句中使用“Exit While”。
答案 3 :(得分:3)
我已尝试输入“退出”几次,并发现它有效,VB没有对我大喊大叫。这是我猜的一个选项,但它看起来很糟糕。
我认为最好的选择类似于托比亚斯所分享的选项。只需将代码放在一个函数中,并在想要打破循环时返回它。看起来也更干净。
For Each item In itemlist
For Each item1 In itemlist1
If item1 = item Then
Return item1
End If
Next
Next
答案 4 :(得分:2)
For i As Integer = 0 To 100
bool = False
For j As Integer = 0 To 100
If check condition Then
'if condition match
bool = True
Exit For 'Continue For
End If
Next
If bool = True Then Continue For
Next
答案 5 :(得分:0)
如果要退出for-to循环,只需将索引设置为超出限制即可:
For i = 1 To max
some code
if this(i) = 25 Then i = max + 1
some more code...
Next`
Poppa。