Press "Enter" to skip to content

Recursive Özyinelemeli Fonksiyon

Gözde Nergiz 0

Recursive Özyinelemeli Fonksiyon

Recursive Özyinelemeli Fonksiyon,Bir problemi çözerken alt problemlere bölerek basite indirgeyen,kendi kendini çağırarak bir döngü gibi çalışan fonksiyonlardır.

Recursive fonksiyon oluşturulurken dikkat edilmesi gereken nokta,fonksiyonun bitmesini sağlayan şart mutlaka belirtilmelidir.

Örnek-1: 1’den 10 a kadar olan sayıları recursive fonksiyonla ekrana yazdıralım.

package recursivefunction;

/**
 *
 * @author Gozde
 */
public class Recursivefunction {

    public static int sayiyazdir(int sayi)
    {
        if(sayi==10)
        {
            System.out.println(sayi);
            return sayi;
        }
        else
        {
            System.out.println(sayi);
            return sayiyazdir(sayi+1);
        }
    }
    public static void main(String[] args) {
        // TODO code application logic here
        System.out.println(sayiyazdir(1));
        
    }
    
}

Fonksiyonumuza parametre olarak sayı değişkenini verdik .1’den 10’a kadar artıracağımız için dikkat ederseniz fonksiyonu çağırdığımız yerde değeri 1 olarak verdik.Bu nedenle bizim bitiş şartımız 10 olacak.Yani sayımız 1’den başlayacak fonksiyon kendini her çağırdığında sayımız bir artacak ve sayımız 10 değerine ulaştığında bize 10 değerini döndürecek ve fonksiyonumuz çalışmayı durduracak.

Örnek-2: Kullanıcıdan alınan sayıdan 1’e kadar olan sayıların toplamını recursive şekilde ekrana yazdıralım.

package recursivefunction;

import java.util.Scanner;

/**
 *
 * @author Gozde
 */
public class Recursivefunction {
 public static int toplam(int sayi)
    {
        if(sayi==1)
        {
            return 1;
        }
        else
        {
            return sayi+toplam(sayi-1);
        }
    }
 
  public static void main(String[] args) {
        // TODO code application logic here
        Scanner s=new Scanner(System.in);
        System.out.println("Bir Sayı Giriniz :");
        int sayi=s.nextInt();
        System.out.println("Toplam : "+toplam(sayi));
    }
}

Bu örneğimizde değerimizi kullanıcıdan aldık.Diyelim ki kullanıcıdan alınan sayı 5 olsun.5’den 1’e kadar olan sayıları toplayıp ekranda toplam sonucu gösterecek.İlk örneğimizde artırarak işlem yapıyorduk ve bitiş şartımızı ona göre belirlemiştik.Bu örnekte de azalarak işlem yapacağız ve bitiş şartımız 1 olacak.

Dikkat edilmesi gereken bir nokta da şu ki : Bitiş değerimiz ne ise geriye döndürdüğü değer de o olmalıdır yoksa programımız yanlış çalışır.Yani bitiş değerimiz 1 ise geri dönüş değerimiz de 1 olmalıdır.

Örnek-3: Bir dizinin elemanlarını recursive olarak ekrana yazdıralım.

package recursivefunction;

public class Recursivefunction {

 public static int diziyazdir(int dizi[], int uzunluk) {
        if (uzunluk == dizi.length - 1) {
            System.out.println(dizi[uzunluk]);
            return dizi[dizi.length - 1];
        } 
        else {
            System.out.println(dizi[uzunluk]);
            return diziyazdir(dizi, uzunluk + 1);
        }
    }

  public static void main(String[] args) {
        // TODO code application logic here
        int dizi[] = {22, 9, 15, 63, 21, 47, 56};
        diziyazdir(dizi, 0);
    }
}

Bu örneğimizde fonksiyonumuzun parametreleri bir dizi ve dizinin uzunluğu.İki parametremiz var çünkü bir dizinin elemanlarını yazdırabilmemiz için bize dizinin indis değeri de gerekli.Diziyi indisini artırarak yazdıracağımız için başlangıç değerini fonksiyonumuzu çağırdığımız yerde 0 olarak verdik,bitiş şartını da diziler 0.indisten başlayarak numaralandırıldığı için dizinin uzunluğunun 1 eksiği olarak belirledik.

Recursive Özyinelemeli Fonksiyon Recursive Özyinelemeli Fonksiyon Recursive Özyinelemeli Fonksiyon 

Recursive Özyinelemeli Fonksiyon Recursive Özyinelemeli Fonksiyon 

Recursive Özyinelemeli Fonksiyon Recursive Özyinelemeli Fonksiyon Recursive Özyinelemeli Fonksiyon

dizi dizi dizi dizi dizi dizi dizi dizi dizi dizi dizi dizi dizi dizi dizi dizi 

dizi dizi dizi dizi dizi dizi dizi

dizi dizi dizi dizi dizi dizi dizi dizi dizi dizi dizi

dizi dizi dizi dizi dizi dizi dizi dizi dizi dizi

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

bakırköy escort afyon escort afyon escort ağrı escort ardahan escort artvin escort aksaray escort amasya escort antalya escort alanya escort aydın escort balıkesir escort bandırma escort bayburt escort bartın escort batman escort bitlis escort bingöl escort bodrum escort bolu escort bursa escort çanakkale escort çerkezköy escort çorum escort düzce escort çeşme escort diyarbakır escort edirne escort erzincan escort erzurum escort erzurum escort elazığ escort eskişehir escort gaziantep escort giresun escort gümüşhane escort hatay escort hatay escort hakkari escort içel escort ığdır escort ısparta escort kars escort maraş escort kayseri escort karabük escort kıbrıs escort kırıkkale escort kırklareli escort kilis escort kırşehir escort konya escort kuşadası escort kütahya escort manisa escort manavgat escort marmaris escort mardin escort malatya escort mersin escort muğla escort muş escort nevşehir escort niğde escort ordu escort osmaniye escort rize escort samsun escort sakarya escort seyhan escort siirt escort sivas escort sinop escort şırnak escort şırnak escort tekirdağ escort trabzon escort tokat escort tunceli escort urfa escort uşak escort van escort yalova escort yozgat escort zonguldak escort izmit escort izmit escort izmit escort istanbul escort avcılar escort esenyurt escort mecidiyeköy escort şişli escort beylikdüzü escort halkalı escort kadıköy escort pendik escort istanbul escort kurtköy escort pendik escort beylikdüzü escort esenyurt escort escort bayan istanbul escort bayan escort escort bayan