Java Eğitimleri

Java ANA SAYFA Java'ya Giriş Java Başlarken Java Sözdizimi Java Yorumları Java Değişkenleri Java Veri Türleri Java Tipi Döküm Java Operatörleri Java Dizeleri Java Matematiği Java Booleanları Java Eğer... Başka Java Anahtarı Java while Döngüsü Döngü için Java Java Ara/Devam Java Dizileri

Java Yöntemleri

Java Yöntemleri Java Yöntemi Parametreleri Java Yöntemi Aşırı Yüklemesi Java Kapsamı Java Özyineleme

Java Sınıfları

Java OOP'si Java Sınıfları/Nesneleri Java Sınıfı Nitelikleri Java Sınıfı Yöntemleri Java Oluşturucuları Java Değiştiriciler Java Kapsülleme Java Paketleri / API Java Kalıtımı Java Polimorfizmi Java İç Sınıfları Java Soyutlama Java Arayüzü Java Numaraları Java Kullanıcı Girişi Java Tarihi Java Dizi Listesi Java Bağlantılı Listesi Java Hash Haritası Java HashSeti Java Yineleyici Java Sarıcı Sınıfları Java İstisnaları Java Normal İfadesi Java Konuları Java Lambda

Java Dosya İşleme

Java Dosyaları Java Dosyaları Oluşturma/Yazma Java Okuma Dosyaları Java Dosyaları Sil

Java Nasıl Yapılır

İki Sayı Ekle

Java Referansı

Java Anahtar Kelimeleri Java Dize Yöntemleri Java Matematik Yöntemleri

Java Örnekleri

Java Örnekleri Java Derleyici Java Alıştırmaları Java Testi Java Sertifikası


Java Özyineleme


Java Özyineleme

Özyineleme, bir işlev çağrısının kendisini yapma tekniğidir. Bu teknik, karmaşık sorunları çözmesi daha kolay basit sorunlara ayırmanın bir yolunu sağlar.

Özyinelemeyi anlamak biraz zor olabilir. Nasıl çalıştığını anlamanın en iyi yolu, onunla deney yapmaktır.


Özyineleme Örneği

İki sayıyı birbirine eklemek kolaydır, ancak bir dizi sayı eklemek daha karmaşıktır. Aşağıdaki örnekte, özyineleme, bir sayı aralığını iki sayı eklemek gibi basit bir göreve bölerek bir araya getirmek için kullanılır:

Örnek

10'a kadar olan tüm sayıları toplamak için özyinelemeyi kullanın.

public class Main {
  public static void main(String[] args) {
    int result = sum(10);
    System.out.println(result);
  }
  public static int sum(int k) {
    if (k > 0) {
      return k + sum(k - 1);
    } else {
      return 0;
    }
  }
}

Örnek Açıklama

Fonksiyon sum()çağrıldığında, kendisinden kküçük tüm sayıların toplamına parametre ekler kve sonucu döndürür. k 0 olduğunda, fonksiyon sadece 0'a döner. Çalışırken, program şu adımları takip eder:

10 + toplam(9)
10 + ( 9 + toplam(8) )
10 + ( 9 + ( 8 + toplam(7) ) )
...
10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + toplam(0)
10 + 9 + 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 + 0

0 olduğunda fonksiyon kendini çağırmadığı kiçin program orada durur ve sonucu döndürür.


Durdurma Durumu

Nasıl döngüler sonsuz döngü sorunuyla karşılaşabiliyorsa, özyinelemeli işlevler de sonsuz özyineleme sorunuyla karşılaşabilir. Sonsuz özyineleme, işlevin kendisini çağırmayı asla bırakmamasıdır. Her özyinelemeli işlevin, işlevin kendisini çağırmayı bıraktığı koşul olan durma koşulu olmalıdır. Önceki örnekte, durma koşulu, parametrenin k0 olduğu zamandır.

Konsepti daha iyi anlamak için çeşitli farklı örnekler görmek faydalı olacaktır. Bu örnekte, işlev, bir başlangıç ​​ve bir bitiş arasına bir sayı aralığı ekler. Bu özyinelemeli işlev için durdurma koşulu, bitişin başlangıç değerinden büyük olmadığı durumdur :

Örnek

5 ile 10 arasındaki tüm sayıları toplamak için özyinelemeyi kullanın.

public class Main {
  public static void main(String[] args) {
    int result = sum(5, 10);
    System.out.println(result);
  }
  public static int sum(int start, int end) {
    if (end > start) {
      return end + sum(start, end - 1);
    } else {
      return end;
    }
  }
}