"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 |
---|---|
|
Program akan membaca satu baris dari keyboard, hingga Anda memasukkan "exit" . |
"Begitu. Program membaca baris dari konsol. Jika Anda memasukkan "exit"
, maka isExit
variabelnya menjadi true
, kondisi loop akan menjadi , dan loop akan berakhir."!isExit
false
"Betul. Jadi, Java memiliki break
pernyataan khusus yang memungkinkan Anda menyederhanakan logika semacam itu. Jika sebuah break
pernyataan 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 break
pernyataan tersebut untuk menulis ulang contoh yang baru saja kita diskusikan:
Kode | Penjelasan |
---|---|
|
Program akan membaca satu baris dari keyboard, hingga Anda memasukkan "exit" . |
"Mungkin aku akan mengingatnya. Aku merasa itu akan berguna."
"Tetapi break
bukan satu-satunya pernyataan Java yang memungkinkan Anda mengontrol perilaku perulangan. Java juga memiliki pernyataan tersebut continue
. Jika Anda menjalankan continue
pernyataan 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. continue
Pernyataan tersebut menyela iterasi saat ini dari loop, tetapi tidak seperti break
pernyataan, itu tidak mengakhiri loop itu sendiri. Pernyataannya juga singkat:
continue;
"Jadi, continue
pernyataan itu dapat digunakan dalam satu lingkaran jika kita ingin 'melewati' pelaksanaan iterasi tertentu dari lingkaran itu?"
"Tepat. Apakah Anda memahami perbedaan antara break
dan 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 1
hingga 20
kecuali 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 |
---|---|
|
Program menampilkan angka dari 1 hingga 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 i
akan selamanya menempel pada nomor tersebut 7
. Lagi pula, continue
pernyataan itu melompati dua pernyataan lainnya: System.out.println(i)
dan i++
. Sebagai akibatnya, begitu kita mencapai nilai 7
, variabel i
akan 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 i
sebelum mengeksekusi continue
, tetapi setelahi % 7
Opsi 2: selalu bertambah i
di awal putaran. Tapi kemudian i
nilai awal harus 0
.
Pilihan 1 | pilihan 2 |
---|---|
|
|
"Luar biasa! Saya akan berusaha untuk tidak melakukan kesalahan ini."
"Aku akan mengingat janjimu!"
GO TO FULL VERSION