Как мне выйти из вложенного цикла или цикла в vb.net?
Я попытался использовать exit for, но он прыгнул или сломал только один цикл 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
vb.net
for-loop
nested-loops
KoolKabin
источник
источник
Exit For item
вариант оператора, похожий наNext item
. В «старые добрые времена» вы могли явноNext
использовать внешний цикл. Сегодня VB выдает ошибку. Конечно, это более «конструктивно»Exit For
.Ответы:
К сожалению, здесь нет
exit two levels of for
инструкции, но есть несколько обходных путей, чтобы сделать то, что вы хотите:Goto . В общем, используя
goto
это считается плохой практикой (и справедливо), но с использованиемgoto
исключительно вперед выскочить из структурированных управляющих операторов, как правило , считается ОК, особенно если альтернативой является более сложный код.Пустой внешний блок
или
Отдельная функция : поместите циклы в отдельную функцию, из которой можно выйти с помощью
return
. Однако для этого может потребоваться передать множество параметров, в зависимости от того, сколько локальных переменных вы используете внутри цикла. Альтернативой было бы поместить блок в многострочную лямбду, поскольку это создаст замыкание для локальных переменных.Логическая переменная : это может сделать ваш код менее читабельным, в зависимости от того, сколько у вас слоев вложенных циклов:
источник
goto
другой, чем функция, если это действительно имеет смысл.goto
в большом проекте, просто чтобы вспомнить дни программирования на qbasic, такие невинные времена. В противном случае я бы пошел на манекен.Try
/Exit Try
, но я не фанат этогоgoto
варианта.Поместите циклы в подпрограмму и вызовите
return
источник
goto
решении. Конечно, если код можно использовать повторно, он в любом случае уже должен быть в функции.Сделайте внешний цикл циклом while и «Exit While» в операторе if.
источник
goto
с большим количеством инструкций, большей детализацией и большим количеством отступов. В чем смысл?Я несколько раз экспериментировал с вводом «exit for» и заметил, что это работает, и VB не кричал на меня. Думаю, это вариант, но он выглядел плохо.
Я думаю, что лучший вариант аналогичен тому, который предлагает Тобиас. Просто поместите свой код в функцию и верните его, когда захотите выйти из цикла. Тоже выглядит чище.
источник
источник
Если я хочу выйти из цикла for-to, я просто устанавливаю индекс за пределом:
Папп.
источник