Решение, которое я выбрал, включало использование логической переменной для отслеживания, должен ли цикл for
обрабатывать свои инструкции или переходить к следующей итерации:
Dim continue
For Each item In collection
continue = True
If condition1 Then continue = False End If
If continue Then
'Do work
End If
Next
Я обнаружил, что решения с вложенными циклами несколько сбивают с толку читаемость. Этот метод также имеет свои подводные камни, поскольку цикл не сразу пропускает следующую итерацию после встречи с continue
. Для более позднего условия было бы возможно изменить состояние continue
. Он также имеет вторичную конструкцию в начальном цикле и требует объявления дополнительной переменной.
О, VBScript ... вздох.
Кроме того, если вы хотите использовать принятый ответ, что не так уж плохо с точки зрения читабельности, вы можете соединить его с помощью :
, чтобы объединить два цикла в один:
Dim i
For i = 0 To 10 : Do
If i = 4 Then Exit Do
WScript.Echo i
Loop While False : Next
Мне показалось полезным устранить дополнительный уровень отступов.