for Loop Klasik Tiga Bagian
for loop mengulang sebuah blok dalam jumlah yang terkendali. Bentuknya di Java mengemas tiga hal di dalam tanda kurung, dipisahkan titik koma:
Ketiga bagian itu berjalan dengan ritme yang tetap:
- Inisialisasi (
int i = 0): berjalan sekali, sebelum yang lainnya. - Kondisi (
i < 5): diperiksa sebelum setiap putaran; loop berhenti saat kondisinya false. - Pembaruan (
i++): berjalan setelah setiap putaran, sebelum kondisinya diperiksa lagi.
Jadi program ini mencetak i = 0 sampai i = 4. Penghitung i hanya berlaku di dalam loop: setelah kurung kurawal penutup, ia sudah tidak ada.
Menghitung Naik, Turun, dan per Langkah
Ketiga bagian itu memberimu kendali penuh atas penghitungnya:
i-- mengurangi nilai, i += 5 melompat lima-lima. Keduanya operator aritmetika yang mengurus perhitungan penghitungnya. Kondisinya menentukan kapan berhenti sesuai arahnya: pakai > saat menghitung turun, < atau <= saat menghitung naik.
Perulangan pada Array
Loop berpenghitung sangat cocok dengan array, dengan .length sebagai batas dan i sebagai index:
Perhatikan bahwa colors.length adalah field tanpa tanda kurung, karena array memang istimewa dalam hal ini. List memakai list.size(). Kondisi i < colors.length sudah benar: index berkisar dari 0 sampai length - 1, jadi memakai < (bukan <=) mencegah error di luar batas.
Enhanced for-each Loop
Kalau kamu hanya butuh setiap elemen dan tidak pernah butuh index-nya, enhanced for lebih rapi dan lebih sulit disalahgunakan, karena tidak ada penghitung yang bisa meleset satu:
Baca for (String color : colors) sebagai "untuk setiap color di colors". Loop ini bekerja pada array dan apa pun yang iterable. Konsekuensinya: kamu tidak punya index, dan kamu tidak bisa menambah atau menghapus elemen dari collection saat menelusurinya (itu melempar exception runtime, yaitu ConcurrentModificationException). Pakai loop berpenghitung kalau kamu butuh salah satunya.
Nested Loop
Loop di dalam loop berguna untuk kisi, tabel, dan pasangan. Loop bagian dalam berjalan sampai selesai untuk setiap putaran loop bagian luar:
Ini mencetak kisi perkalian 3x3. Beri penghitungnya nama yang bermakna (row, col), bukan i, j, begitu loop-nya bersarang dalam. Ini mencegahmu bingung mana yang mana.
break dan continue
break langsung keluar dari loop. continue melewati sisa putaran saat ini dan melompat ke langkah pembaruan:
Ini mencetak 1 3 5 7. continue melewati bilangan genap; break mengakhiri loop begitu i akan melebihi 7. Pada nested loop, keduanya hanya memengaruhi loop paling dalam, kecuali kamu memakai labeled break.
Hati-hati dengan Infinite Loop
Kalau kondisinya tidak pernah menjadi false, loop berjalan selamanya. Penyebab yang biasa adalah lupa menulis pembaruan atau menggerakkan penghitung ke arah yang salah:
for (int i = 0; i < 5; i--) { // i only ever decreases -> never reaches 5
System.out.println(i);
}
Infinite loop yang disengaja menghilangkan ketiga bagiannya, for (;;) { ... }, dan mengandalkan break di dalamnya untuk berhenti. Pakai itu seperlunya saja; while (true) biasanya lebih jelas dibaca.
Berikutnya: while Loop
for loop unggul saat kamu sudah tahu penghitungnya sejak awal. Kalau kamu ingin mengulang sampai suatu kondisi berubah, dan kamu tidak punya penghitung yang jelas, while loop lebih cocok. Itu topik halaman berikutnya.
Pertanyaan yang sering diajukan
Bagaimana sintaks for loop di Java?
For loop di Java punya tiga bagian di dalam tanda kurung yang dipisahkan titik koma: for (initialization; condition; update) { ... }. Contohnya, for (int i = 0; i < 5; i++) { ... } memulai i dari 0, menjalankan isi loop selama i < 5, dan menambahkan 1 ke i setelah setiap putaran. Ketiga bagian itu boleh dikosongkan.
Apa perbedaan for loop dan for-each loop di Java?
for loop klasik memakai penghitung eksplisit, jadi kamu yang mengendalikan index dan arahnya. Ini paling cocok saat kamu butuh index atau ingin melewati elemen tertentu. Enhanced for-each loop, for (Type item : collection), menelusuri setiap elemen secara berurutan tanpa index. Ini lebih rapi saat kamu hanya butuh setiap elemennya dan tidak pernah butuh posisinya. For-each tidak bisa mengubah struktur collection selama loop berjalan.
Bagaimana cara melakukan perulangan pada array di Java?
Bisa dengan index memakai loop berpenghitung, for (int i = 0; i < arr.length; i++) { use arr[i]; }, atau kalau kamu tidak butuh index-nya, pakai for-each: for (int x : arr) { use x; }. Array menyediakan ukurannya lewat field .length (tanpa tanda kurung), sedangkan list memakai .size().