vb.net 에서 에 대한 차단/종료 중첩
vb.net 에서 중첩 또는 순환을 수행하려면 어떻게 해야 합니까?
저는 출구를 사용하려고 했지만 루프 전용으로 하나만 뛰거나 부러졌습니다.
다음을 위해 어떻게 해야 합니까?
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
유감스럽게도, 없습니다.exit two levels of for
원하는 작업을 수행할 수 있는 몇 가지 해결 방법이 있습니다.
이동. 일반적으로, 사용.
goto
나쁜 관행으로 간주되지만(그리고 당연하게도 그렇다), 그러나 사용.goto
구조화된 제어문에서 앞으로 점프하는 경우에만, 특히 대안이 더 복잡한 코드를 갖는 경우 일반적으로 OK로 간주됩니다.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
그러나 루프 내에서 사용하는 로컬 변수의 수에 따라 많은 매개 변수를 전달해야 할 수도 있습니다.블럭을 다중 선 람다에 넣는 방법도 있습니다. 그러면 로컬 변수에 대한 폐쇄가 생성되기 때문입니다.부울 변수:이렇게 하면 중첩된 루프의 계층 수에 따라 코드를 읽을 수가 다소 줄어들 수 있습니다.
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
서브루틴에 루프를 넣고 호출합니다.return
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
외부 루프를 잠시 루프로 만들고 if 문에서 "Exit While"을 선택합니다.
저는 "exit for"라고 타이핑하는 것을 몇 번 실험했고 그것이 효과가 있다는 것을 알아차렸고 VB는 저에게 소리를 지르지 않았습니다.제 생각에는 선택사항인 것 같은데 그냥 안 좋아 보였어요.
저는 토바이어스가 공유하는 것과 가장 좋은 옵션이 비슷하다고 생각합니다.당신의 코드를 함수에 넣고 당신이 루프를 깨고 싶을 때 그것을 돌려받으면 됩니다.더 깨끗해 보입니다.
For Each item In itemlist
For Each item1 In itemlist1
If item1 = item Then
Return item1
End If
Next
Next
루프에 부울 값 검사를 삽입합니다.
이프 마이 브레이크 Then
하위 항목 종료
종료할 경우
MyBreak이 버튼 또는 레이블에 의해 전환되는 위치를 클릭합니다.
for-to 루프를 종료하려면 인덱스를 제한을 초과하여 설정합니다.
For i = 1 To max
some code
if this(i) = 25 Then i = max + 1
'some more code...
Next
언급URL : https://stackoverflow.com/questions/5312291/breaking-exit-nested-for-in-vb-net
'programing' 카테고리의 다른 글
스왑 공간과 관련된 링커 성능? (0) | 2023.06.06 |
---|---|
MariaDB - 다른 열 값에 따라 상수로 열 업데이트 (0) | 2023.06.06 |
형식을 사용하여 문자열을 작성하는 방법 (0) | 2023.04.22 |
시퀀스에 둘 이상의 요소가 포함되어 있습니다. (0) | 2023.04.22 |
IConfiguration에 GetValue에 대한 정의가 없습니다. (0) | 2023.04.22 |