Dalam loop C # (jangan ragu untuk menjawab untuk bahasa lain), apa perbedaan antara break dan continue sebagai sarana untuk meninggalkan struktur loop, dan pergi ke iterasi berikutnya?
Contoh:
foreach (DataRow row in myTable.Rows)
{
if (someConditionEvalsToTrue)
{
break; //what's the difference between this and continue ?
//continue;
}
}
c#
loops
enumeration
Seibar
sumber
sumber
continue;
akan berhenti memproses arusrow
dan melanjutkan yang berikutnyarow
dari koleksi. Di sisi lain,break;
akan meninggalkanforeach
pernyataan sepenuhnya dan baris yang tersisa tidak akan pernah diproses.Jawaban:
break
akan keluar dari loop sepenuhnya,continue
hanya akan melewatkan iterasi saat ini.Sebagai contoh:
Terobosan akan menyebabkan loop keluar pada iterasi pertama -
DoSomeThingWith
tidak akan pernah dieksekusi. Ini di sini:Tidak akan mengeksekusi
DoSomeThingWith
untuki = 0
, tetapi loop akan berlanjut danDoSomeThingWith
akan dieksekusi untuki = 1
kei = 9
.sumber
Cara yang sangat mudah untuk memahami ini adalah dengan menempatkan kata "loop" setelah setiap kata kunci. Istilah sekarang masuk akal jika hanya dibaca seperti frasa sehari-hari.
break
loop - looping rusak dan berhenti.continue
loop - loop terus dijalankan dengan iterasi berikutnya.sumber
break menyebabkan penghitung program melompat keluar dari ruang lingkup loop terdalam
Bekerja seperti ini
terus melompat ke ujung lingkaran. Dalam for for loop, lanjutkan melompat ke ekspresi kenaikan.
Bekerja seperti ini
sumber
for
loop standar , tetapi apakah ini akan berfungsi untukwhile
loop pra dan pasca diuji ? Thegoto
notasi mengarah saya untuk percaya begitu, tapi perlu beberapa verifikasi.while
("pra-diuji") dando
-while
("pasca-diuji"), setelah sebuahcontinue;
pernyataan terpenuhi, hal berikutnya yang akan terjadi adalah bahwa kondisi loop dievaluasi untuk memutuskan apakah pengulangan tambahan harus dilakukan. Tentu saja, denganbreak;
kondisi loop tidak dicentang, loop hanya keluar sepenuhnya. Jadigoto
analoginya bagus untuk memahami aspek ini juga.Saya dulu selalu bingung apakah saya harus menggunakan istirahat, atau melanjutkan. Inilah yang membantu saya mengingat:
Kapan menggunakan break vs continue?
sumber
break
akan menghentikanforeach
loop sepenuhnya,continue
akan melompat ke yang berikutnyaDataRow
.sumber
Ada lebih dari beberapa orang yang tidak suka
break
dancontinue
. Keluhan terakhir yang saya lihat tentang mereka adalah dalam JavaScript: The Good Parts oleh Douglas Crockford. Tetapi saya menemukan bahwa kadang-kadang menggunakan salah satu dari mereka benar-benar menyederhanakan hal-hal, terutama jika bahasa Anda tidak termasukdo-while
ataudo-until
gaya loop.Saya cenderung menggunakan
break
loop yang mencari daftar untuk sesuatu. Setelah ditemukan, tidak ada gunanya melanjutkan, jadi sebaiknya Anda berhenti.Saya menggunakan
continue
ketika melakukan sesuatu dengan sebagian besar elemen daftar, tetapi masih ingin melewatkan beberapa.The
break
Pernyataan juga datang ketika pemungutan suara berguna untuk respon yang valid dari seseorang atau sesuatu. Dari pada:Anda dapat menghilangkan duplikasi dan menggunakan:
The
do-until
loop yang saya sebutkan sebelumnya adalah solusi yang lebih elegan untuk itu masalah tertentu:Tidak ada duplikasi, dan tidak
break
diperlukan juga.sumber
Semua telah memberikan penjelasan yang sangat bagus. Saya masih memposting jawaban saya hanya untuk memberi contoh jika itu bisa membantu.
Berikut hasilnya:
Jadi 3 [Dicetak] & 4 [Dicetak] tidak akan ditampilkan karena ada jeda ketika saya == 3
Berikut hasilnya:
Jadi 3 [Dicetak] tidak akan ditampilkan karena ada melanjutkan ketika saya == 3
sumber
Istirahat
Break memaksa sebuah loop untuk segera keluar.
Terus
Ini kebalikan dari istirahat. Alih-alih mengakhiri loop, itu segera loop lagi, melewatkan sisa kode.
sumber
Continue
bukan kebalikan daribreak
,break
menghentikan loop,continue
menghentikan iterasi saat ini.Jawaban sederhana:
Break segera keluar dari loop.
Lanjutkan mulai memproses item berikutnya. (Jika ada, dengan melompat ke garis evaluasi untuk sementara)
sumber
Contohnya
Mencetak 1, 2, 3 (pada baris terpisah).
Tambahkan kondisi istirahat di i = 2
Sekarang loop mencetak 1 dan berhenti.
Ganti istirahat dengan melanjutkan.
Sekarang untuk mengulang cetakan 1 dan 3 (melewatkan 2).
Dengan demikian,
break
hentikan loop, sedangkancontinue
melompat ke iterasi berikutnya.sumber
Sayangnya Ruby agak berbeda. PS: Ingatan saya agak kabur tentang ini jadi minta maaf jika saya salah
bukannya break / continue, itu telah break / next, yang berperilaku sama dalam hal loop
Loop (seperti yang lainnya) adalah ekspresi, dan "mengembalikan" hal terakhir yang mereka lakukan. Sebagian besar waktu, mendapatkan nilai kembali dari loop tidak ada gunanya, jadi semua orang hanya melakukan ini
Namun Anda dapat melakukan ini
NAMUN, banyak kode ruby 'mengemulasi' sebuah loop dengan menggunakan blok. Contoh kanonik adalah
Karena jauh lebih umum bagi orang-orang untuk ingin melakukan sesuatu dengan hasil dari blok, ini adalah tempat itu menjadi berantakan. break / next berarti hal-hal yang berbeda dalam konteks blok.
break akan keluar dari kode yang disebut blok
selanjutnya akan melewati sisa kode di blok, dan 'mengembalikan' apa yang Anda tentukan ke penelepon blok. Ini tidak masuk akal tanpa contoh.
Jadi ya. Ruby luar biasa, tetapi memiliki beberapa kasus sudut yang mengerikan. Ini adalah yang terburuk kedua yang pernah saya lihat selama bertahun-tahun menggunakannya :-)
sumber
Tolong izinkan saya menyatakan yang jelas: perhatikan bahwa menambahkan tidak ada istirahat atau melanjutkan, akan melanjutkan program Anda; yaitu saya terjebak untuk kesalahan tertentu, kemudian setelah login, saya ingin melanjutkan pemrosesan, dan ada lebih banyak tugas kode di antara baris berikutnya, jadi saya biarkan saja gagal.
sumber
Untuk benar-benar keluar dari loop foreach, break digunakan;
Untuk pergi ke iterasi berikutnya dalam loop, lanjutkan digunakan;
Istirahat berguna jika Anda mengulang-ulang koleksi Objek (seperti Baris dalam Datatable) dan Anda sedang mencari kecocokan tertentu, ketika Anda menemukan kecocokan itu, tidak perlu melanjutkan melalui baris yang tersisa, jadi Anda ingin memecahkan di luar.
Lanjutkan berguna ketika Anda telah mencapai apa yang Anda butuhkan di samping iterasi loop. Anda biasanya akan melanjutkan setelah if .
sumber
jika Anda tidak ingin menggunakan break, Anda hanya meningkatkan nilai I sedemikian rupa sehingga membuat kondisi iterasi salah dan loop tidak akan dieksekusi pada iterasi berikutnya.
sumber
Adapun bahasa lain:
sumber