Menu

Java for Döngüsü: Söz Dizimi, Örnekler ve Geliştirilmiş for-each

Java for döngüsü anlatımı: klasik üç parçalı döngü, diziler ve listeler üzerinde dönme, iç içe döngüler, break ve continue ve geliştirilmiş for-each.

Bu sayfada çalıştırılabilir editörler var - düzenle, çalıştır ve sonucu anında gör.

Klasik Üç Parçalı for Döngüsü

Bir for döngüsü, bir bloğu kontrollü sayıda kez tekrar eder. Java'nın biçimi, parantezlerin içine noktalı virgülle ayrılmış üç şeyi sığdırır:

Üç parça sabit bir ritimde çalışır:

  1. İlklendirme (int i = 0) - her şeyden önce, bir kez çalışır.
  2. Koşul (i < 5) - her geçişten önce kontrol edilir; koşul yanlış olduğunda döngü durur.
  3. Güncelleme (i++) - her geçişten sonra, koşul yeniden kontrol edilmeden önce çalışır.

Yani bu, i = 0'dan i = 4'e kadar yazdırır. i sayacının kapsamı döngüyle sınırlıdır - kapanış küme parantezinden sonra var olmaz.

Yukarı, Aşağı ve Adımlarla Sayma

Üç parça sayaç üzerinde tam kontrol verir:

i-- azaltır, i += 5 beşer adımla atlar. Koşul, yöne duyarlı durmaya karar verir: geriye sayarken >, ileriye sayarken < veya <= kullan.

Bir Dizi Üzerinde Dönme

Sayaçlı bir döngü, sınır olarak .length'i ve indeks olarak i'yi kullanarak bir diziyle doğal şekilde eşleşir:

colors.length'in parantezsiz bir alan olduğuna dikkat et - diziler bu konuda özeldir. Bir List ise list.size() kullanır. i < colors.length koşulu doğrudur: indeksler 0'dan length - 1'e kadar gider, bu yüzden < kullanmak (<= değil) sınır dışı hatasını önler.

Geliştirilmiş for-each Döngüsü

Yalnızca her öğeye ihtiyacın olduğunda ve indekse asla ihtiyacın olmadığında, geliştirilmiş for daha temizdir ve yanlış yapması daha zordur - bir-eksik-bir-fazla hatası yapılacak sayaç yoktur:

for (String color : colors)'ı "colors içindeki her color için" diye oku. Diziler ve yinelenebilir her şey üzerinde çalışır. Bedeli: indeksin yoktur ve dönerken koleksiyona ekleme ya da koleksiyondan çıkarma yapamazsın (bu, ConcurrentModificationException fırlatır). İkisinden birine ihtiyacın olduğunda sayaçlı döngüye başvur.

İç İçe Döngüler

Bir döngünün içindeki döngü - ızgaralar, tablolar ve eşleştirmeler için kullanışlıdır. İç döngü, dış döngünün her geçişinde tam olarak çalışır:

Bu, 3x3'lük bir çarpım ızgarası yazdırır. İç içe geçme derinleştiğinde sayaçlara i, j yerine anlamlı adlar (row, col) ver - bu, hangisinin hangisi olduğunu karıştırmaktan seni kurtarır.

break ve continue

break döngüden hemen çıkar. continue, mevcut geçişin geri kalanını atlar ve güncelleme adımına geçer:

Bu, 1 3 5 7 yazdırır. continue çiftleri atlar; break, i 7'yi aşacak olduğunda döngüyü bitirir. İç içe döngülerde, etiketli bir break kullanmadığın sürece her ikisi de yalnızca en içteki döngüyü etkiler.

Sonsuz Döngülere Dikkat

Koşul hiçbir zaman yanlış olmazsa, döngü sonsuza dek çalışır. Bunun her zamanki nedeni, güncellemeyi unutmak veya sayacı yanlış yöne hareket ettirmektir:

for (int i = 0; i < 5; i--) {   // i yalnızca azalır -> 5'e asla ulaşmaz
    System.out.println(i);
}

Kasıtlı bir sonsuz döngü üç parçanın hepsini atlar -for (;;) { ... }- ve durmak için içerideki bir break'e dayanır. Bunu tutumlu kullan; bir while (true) genellikle daha açık okunur.

Sonraki: while Döngüleri

for döngüsü, sayacı önceden bildiğinde parlar. Bir koşul değişene kadar dönmek istediğinde - ve elinde temiz bir sayaç yoksa - while döngüsü daha iyi oturur. Sıradaki sayfa bu.

Sıkça Sorulan Sorular

Java'da bir for döngüsünün söz dizimi nedir?

Java for döngüsünün parantez içinde noktalı virgülle ayrılmış üç parçası vardır: for (ilklendirme; koşul; güncelleme) { ... }. Örneğin for (int i = 0; i < 5; i++) { ... }, i'yi 0'dan başlatır, i < 5 olduğu sürece gövdeyi çalıştırır ve her geçişten sonra i'ye 1 ekler. Üç parça da isteğe bağlıdır.

Java'da for döngüsü ile for-each döngüsü arasındaki fark nedir?

Klasik for döngüsü açık bir sayaç kullanır, böylece indeksi ve yönü sen kontrol edersin - indekse ihtiyacın olduğunda veya öğeleri atlamak istediğinde en iyisidir. Geliştirilmiş for-each döngüsü, for (Tip öğe : koleksiyon), her öğeyi indeks olmadan sırayla dolaşır - yalnızca her öğeye ihtiyacın olduğunda ve konuma asla ihtiyacın olmadığında daha temizdir. for-each, dönerken koleksiyonun yapısını değiştiremez.

Java'da bir dizi üzerinde nasıl dönülür?

Sayaçlı bir döngüyle indeksle -for (int i = 0; i < arr.length; i++) { arr[i]'yi kullan; }- ya da indekse ihtiyacın yoksa bir for-each kullan: for (int x : arr) { x'i kullan; }. Diziler boyutlarını .length alanıyla (parantezsiz) açar, listeler ise .size() kullanır.

Coddy programming languages illustration

Coddy ile kodlamayı öğren

BAŞLA