Bagaimana cara keluar dari nested for or loop in vb.net?
Saya mencoba menggunakan exit for tetapi hanya melompat atau merusak satu loop saja.
Bagaimana saya bisa membuatnya sebagai berikut:
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
sumber
sumber
Exit For item
varian dari pernyataan tersebut, mirip denganNext item
. Di "masa lalu yang indah" Anda bisa secara eksplisitNext
loop luar. Hari ini, VB memberikan kesalahan. Tentu saja, lebih "konstruktif"Exit For
.Jawaban:
Sayangnya, tidak ada
exit two levels of for
pernyataan, tetapi ada beberapa solusi untuk melakukan apa yang Anda inginkan:Pergi . Secara umum, menggunakan
goto
ini dianggap praktik buruk (dan memang seharusnya begitu), tetapi menggunakangoto
semata-mata untuk maju melompat keluar dari pernyataan kontrol terstruktur biasanya dianggap OK, terutama jika alternatif adalah memiliki kode lebih rumit.Blok luar tiruan
atau
Fungsi terpisah : Letakkan loop di dalam fungsi terpisah, yang dapat keluar dengan
return
. Ini mungkin mengharuskan Anda untuk meneruskan banyak parameter, tergantung pada berapa banyak variabel lokal yang Anda gunakan di dalam loop. Alternatifnya adalah menempatkan blok menjadi lambda multi-baris, karena ini akan membuat penutupan atas variabel lokal.Variabel Boolean : Ini mungkin membuat kode Anda sedikit kurang dapat dibaca, bergantung pada berapa banyak lapisan loop bersarang yang Anda miliki:
sumber
goto
fungsi lainnya jika itu benar-benar masuk akal.goto
dalam proyek besar hanya untuk mengingat hari-hari pemrograman saya di qbasic, ah saat-saat yang begitu polos. kalau tidak, aku akan melakukan dummy do.Try
/Exit Try
pendekatan, tetapi saya bukan penggemargoto
opsi.Letakkan loop di subrutin dan panggil
return
sumber
goto
solusi yang lebih sederhana . Tentu saja, jika kode dapat digunakan kembali, itu harus sudah dalam fungsi.Buat loop luar menjadi loop sementara, dan "Exit While" di pernyataan if.
sumber
goto
dengan lebih banyak instruksi, lebih banyak verbositas dan lebih banyak lekukan. Apa gunanya?Saya telah bereksperimen dengan mengetik "keluar untuk" beberapa kali dan melihat itu berhasil dan VB tidak berteriak pada saya. Itu adalah pilihan yang saya kira tapi itu terlihat buruk.
Saya pikir opsi terbaik mirip dengan yang dimiliki oleh Tobias. Letakkan saja kode Anda dalam sebuah fungsi dan kembalikan ketika Anda ingin keluar dari loop Anda. Terlihat lebih bersih juga.
sumber
sumber
Jika saya ingin keluar dari perulangan for-to, saya hanya menyetel indeks di luar batas:
Pak.
sumber