"Hai, Amigo!

"Hai Ellie."

"Kamu sudah mempelajari loop, dan itu keren."

"Saya setuju! Sekarang saya benar-benar tidak tahu bagaimana hidup tanpa mereka."

"Kadang-kadang Anda dapat melakukannya tanpa mereka ... Tetapi lebih sering Anda membutuhkannya. Hari ini kita akan berbicara tentang situasi ketika Anda harus keluar dari lingkaran lebih cepat dari jadwal."

"Maksud Anda, ketika kondisi untuk melanjutkan loop benar, tetapi Anda masih harus keluar dari loop?"

"Tepat! Kadang-kadang Anda terdengar seperti Anda sudah menjadi seorang programmer. Lagi pula, untuk keluar dari loop lebih cepat dari jadwal, Anda dapat menggunakan pernyataan break . Lihatlah contoh berikut:

Kode Penjelasan
Scanner console = new Scanner(System.in);
boolean isExit = false;
while (!isExit)
{
   String s = console.nextLine();
   isExit = s.equals("exit");
}
Program akan membaca satu baris dari keyboard, hingga Anda memasukkan "exit".

"Begitu. Program membaca baris dari konsol. Jika Anda memasukkan "exit", maka isExitvariabelnya menjadi true, kondisi loop akan menjadi , dan loop akan berakhir."!isExitfalse

"Betul. Jadi, Java memiliki breakpernyataan khusus yang memungkinkan Anda menyederhanakan logika semacam itu. Jika sebuah breakpernyataan dieksekusi di dalam sebuah loop, maka loop tersebut akan segera berakhir. Program akan mulai mengeksekusi pernyataan yang mengikuti loop tersebut. Pernyataan tersebut sangat singkat :

break;

"Beginilah cara Anda dapat menggunakan breakpernyataan tersebut untuk menulis ulang contoh yang baru saja kita diskusikan:

Kode Penjelasan
Scanner console = new Scanner(System.in);
while (true)
{
   String s = console.nextLine();
   if (s.equals("exit"))
     break;
}
Program akan membaca satu baris dari keyboard, hingga Anda memasukkan "exit".

"Mungkin aku akan mengingatnya. Aku merasa itu akan berguna."

"Tetapi breakbukan satu-satunya pernyataan Java yang memungkinkan Anda mengontrol perilaku perulangan. Java juga memiliki pernyataan tersebut continue. Jika Anda menjalankan continuepernyataan di dalam perulangan, iterasi perulangan saat ini akan berakhir lebih cepat dari jadwal."

"Apa maksudmu dengan iterasi?"

"Sebuah iterasi loop adalah salah satu eksekusi dari loop body. continuePernyataan tersebut menyela iterasi saat ini dari loop, tetapi tidak seperti breakpernyataan, itu tidak mengakhiri loop itu sendiri. Pernyataannya juga singkat:

continue;

"Jadi, continuepernyataan itu dapat digunakan dalam satu lingkaran jika kita ingin 'melewati' pelaksanaan iterasi tertentu dari lingkaran itu?"

"Tepat. Apakah Anda memahami perbedaan antara breakdan continue? Jika Anda perlu menemukan tujuh di antara 20 digit yang tidak berulang, pernyataan interupsi loop dan loop seperti apa yang akan Anda gunakan?

"Hmm... saya akan menelusuri semua angka, dan jika saya menemukan 7, maka saya akan mengeksekusi break."

"Bagaimana jika Anda perlu menampilkan angka dari 1hingga 20kecuali angka yang habis dibagi 7?"

"Nah, di sini saya mungkin perlu continue, karena saya tidak ingin keluar dari loop. Tapi saya masih belum mengerti."

"Izinkan saya menunjukkan cara mengatasi masalah ini. Seperti inilah tampilan kode ini."

Kode Penjelasan
int i = 1;
while (i <= 20)
{
   if ( (i % 7) == 0 )
     continue;
   System.out.println(i);
   i++;
}
Program menampilkan angka dari 1hingga 20. Jika bilangan tersebut habis dibagi 7(sisa pembagiannya adalah 7) 0 , maka kita melewatkan menampilkan bilangan tersebut.

"Kenapa kamu menatapku dengan curiga, Ellie? Apakah ada yang menarik di sini?"

"Kamu tidak bisa dibodohi, Amigo! Memang, kode ini tidak akan bekerja dengan benar . Ini akan menampilkan 6 digit pertama, dan kemudian iakan selamanya menempel pada nomor tersebut 7. Lagi pula, continuepernyataan itu melompati dua pernyataan lainnya: System.out.println(i)dan i++. Sebagai akibatnya, begitu kita mencapai nilai 7, variabel iakan berhenti berubah dan kita akan berada dalam loop tak terbatas. Saya sengaja menulis kode dengan cara ini untuk mengilustrasikan kesalahan yang sangat umum."

"Bagaimana kita memperbaikinya?"

"Ada dua opsi di sini:"

Opsi 1: ubah isebelum mengeksekusi continue, tetapi setelahi % 7

Opsi 2: selalu bertambah idi awal putaran. Tapi kemudian inilai awal harus 0.

Pilihan 1 pilihan 2
int i = 1;
while (i <= 20)
{
   if ( (i % 7) == 0 )
   {
     i++;
     continue;
   }
   
   System.out.println(i);
   i++;
}
int i = 0;
while (i < 20)
{
   i++;
   if ( (i % 7) == 0)
     continue;
   System.out.println(i);
}

"Luar biasa! Saya akan berusaha untuk tidak melakukan kesalahan ini."

"Aku akan mengingat janjimu!"