for Döngüsü
for döngüsü, kaç kez çalıştırmak istediğinizi bildiğiniz durumlarda kodu
tekrarlamanın en yaygın yoludur.
Temel Sözdizimi
Bölüm başlığı “Temel Sözdizimi”for (başlatma; koşul; güncelleme) { // gövde, koşul true olduğu sürece çalışır}- Başlatma başlangıçta bir kez çalışır
- Koşul her yinelemeden önce kontrol edilir;
falseise döngü durur - Gövde koşul
trueise çalışır - Güncelleme gövdeden sonra çalışır, ardından 2. adıma dönülür
for (int i = 0; i < 5; i = i + 1) { print(i);}// Çıktı: 0 1 2 3 4Adım adım:
| Yineleme | i |
i < 5 |
Eylem |
|---|---|---|---|
| Önce | 0 | başlatma | |
| 1 | 0 | true | print(0), sonra i = 0 + 1 |
| 2 | 1 | true | print(1), sonra i = 1 + 1 |
| 3 | 2 | true | print(2), sonra i = 2 + 1 |
| 4 | 3 | true | print(3), sonra i = 3 + 1 |
| 5 | 4 | true | print(4), sonra i = 4 + 1 |
| 6 | 5 | false | dur |
Diziler Üzerinde Döngü
Bölüm başlığı “Diziler Üzerinde Döngü”Bir dizinin her elemanına indeksle erişmek için for kullanın:
int[] arr = [10, 20, 30, 40];for (int i = 0; i < 4; i = i + 1) { print(arr[i]);}// Çıktı: 10 20 30 40İç İçe for Döngüleri
Bölüm başlığı “İç İçe for Döngüleri”Bir döngü içinde başka bir döngü; tablolar veya ızgaralarla çalışırken kullanışlıdır:
for (int i = 1; i <= 3; i = i + 1) { for (int j = 1; j <= 3; j = j + 1) { print(i * j); }}// Çıktı: 1 2 3 2 4 6 3 6 9İsteğe Bağlı Kısımlar
Bölüm başlığı “İsteğe Bağlı Kısımlar”for döngüsündeki üç kısmın her biri isteğe bağlıdır. Hepsini boş bırakarak
sonsuz bir döngü yazabilirsiniz:
for ( ; ; ) { // sonsuza kadar çalışır (break veya return olana kadar)}Ya da değişken zaten varsa başlatmayı atlayabilirsiniz:
int i = 0;for ( ; i < 5; i = i + 1) { print(i);}break ve continue
Bölüm başlığı “break ve continue”break (döngüden hemen çık)
Bölüm başlığı “break (döngüden hemen çık)”for (int i = 1; i <= 5; i = i + 1) { if (i == 3) { break; } print(i);}// Çıktı: 1 2continue (sonraki yinelemeye atla)
Bölüm başlığı “continue (sonraki yinelemeye atla)”continue gövdenin kalanını atlar ama güncelleme adımı yine de çalışır:
for (int i = 1; i <= 5; i = i + 1) { if (i == 2) { continue; } if (i == 4) { continue; } print(i);}// Çıktı: 1 3 5 (2 ve 4 atlandı, ama i++ yine de çalıştı)Kabarcık Sıralama Örneği
Bölüm başlığı “Kabarcık Sıralama Örneği”int[] arr = [5, 2, 8, 1, 9];int n = 5;
for (int i = 0; i < n - 1; i = i + 1) { for (int j = 0; j < n - i - 1; j = j + 1) { if (arr[j] > arr[j + 1]) { int tmp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = tmp; } }}
for (int k = 0; k < n; k = k + 1) { print(arr[k]);}// Çıktı: 1 2 5 8 9İleri Seviye Kalıplar
Bölüm başlığı “İleri Seviye Kalıplar”Geriye sayma
Bölüm başlığı “Geriye sayma”Güncelleme adımı sayacı artırmak yerine azaltabilir:
for (int i = 3; i > 0; i = i - 1) { print(i);}// Çıktı: 3 2 1Birden fazla artırarak ilerleme
Bölüm başlığı “Birden fazla artırarak ilerleme”for (int i = 0; i < 10; i = i + 2) { print(i);}// Çıktı: 0 2 4 6 8Diziyi uzunluğuna göre dolaşma
Bölüm başlığı “Diziyi uzunluğuna göre dolaşma”Boyutu sabit yazmak yerine .length() kullanın; böylece dizi değişse bile
döngü uyum sağlar:
int[] arr = [10, 20, 30, 40];for (int i = 0; i < arr.length(); i = i + 1) { print(arr[i]);}Döngü değişkeni döngüye kapsamlıdır
Bölüm başlığı “Döngü değişkeni döngüye kapsamlıdır”Başlatmada tanımlanan bir değişken yalnızca döngü içinde yaşar:
for (int i = 0; i < 3; i = i + 1) { print(i);}// print(i); HATA, 'i' burada mevcut değilSon değere daha sonra ihtiyacınız varsa değişkeni döngüden önce tanımlayın:
int i = 0;for ( ; i < 3; i = i + 1) { }print(i); // 3, 'i' dışarıda tanımlandığı için yaşamaya devam ederSık Yapılan Hata: Sonsuz Döngü
Bölüm başlığı “Sık Yapılan Hata: Sonsuz Döngü”Koşul hiçbir zaman false olmazsa döngü asla durmaz:
for (int i = 0; i >= 0; i = i + 1) { print(i); // sonsuza kadar çalışır, i her zaman >= 0}Sırada Ne Var?
Bölüm başlığı “Sırada Ne Var?”- Yineleme sayısını bilmediğinizde while döngüsü kullanın
- En az bir kez çalışması gerektiğinde do-while döngüsü deneyin
