[解決済み] vb.netのネストされたforのブレーク/エグジット
2022-08-09 04:17:36
質問
vb.netでネストしたforやloopから抜け出すにはどうしたらよいですか?
exit forを使ってみましたが、1つの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
どのように解決するのですか?
残念ながら
exit two levels of for
ステートメントはありませんが、あなたが望むことを行うためにいくつかの回避策があります。
-
後藤 . 一般に
goto
は はバッドプラクティスであると考えられています。 (とされていますが(そしてそれは当然です)。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
. ただし、ループ内で使用するローカル変数の数によっては、多くのパラメータを渡さなければならないかもしれません。別の方法として、ブロックを複数行のラムダに入れることもできます。この場合、ローカル変数に対するクロージャが作成されるからです。 -
ブール変数 : これは、ネストされたループが何層あるかによって、コードを少し読みにくくするかもしれません。
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
関連
-
[解決済み] NUnit TestCaseのパラメータとして二重引用符をエスケープするにはどうすればよいですか?
-
[解決済み] フォームに線を引くにはどうしたらよいですか?
-
[解決済み] 特定のDataTableの行をループする
-
[解決済み] 算術演算でオーバーフローが発生した
-
[解決済み] 配列の反復処理に "for...in "を使用するのは、なぜ良くないのでしょうか?
-
[解決済み] Javaでネストされたループから抜け出すには?
-
[解決済み] 複数のネストされた「for」ループを終了するためにbreakを使用できますか?
-
[解決済み】Javaのfor-eachループで反復カウンタにアクセスする方法はありますか?
-
[解決済み】ネストされたループからの脱却
-
[解決済み] VB.NET IntelliSense : ENTERオートコンプリートで改行を無効にする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] NUnit TestCaseのパラメータとして二重引用符をエスケープするにはどうすればよいですか?
-
[解決済み] 文字列をダブルに変換する - VB
-
[解決済み] VB.netでの遅延
-
[解決済み] VB.NETにおけるDirectCast()とCType()の違いについて
-
[解決済み] 特定のDataTableの行をループする
-
[解決済み] VB.NETで文字列を比較する
-
[解決済み] 文字列 "" を 'Integer' 型に変換するのは無効です。
-
[解決済み] C#で[goto]をまだ使っている人はいますか、もしそうならなぜですか?[クローズド]
-
[解決済み] VB.NETで条件付き三項演算子はありますか?
-
[解決済み] IsNothing対IsNothing