JavaScript Özyinelemesi (Örneklerle)

Bu eğitimde, örnekler yardımıyla JavaScript'te özyineleme hakkında bilgi edineceksiniz.

Özyineleme, kendisini çağırma sürecidir. Kendini çağıran bir işleve özyinelemeli işlev denir.

Özyinelemeli işlevin sözdizimi şöyledir:

 function recurse() ( // function code recurse(); // function code ) recurse();

Burada recurse()işlev özyinelemeli bir işlevdir. Kendini işlevin içinde çağırıyor.

JavaScript'te özyineleme çalışması

Özyinelemeli bir işlevin kendisini aramayı durduracak bir koşulu olmalıdır. Aksi takdirde, işlev süresiz olarak çağrılır.

Koşul yerine getirildiğinde, işlev kendisini aramayı bırakır. Buna temel koşul denir.

Sonsuz özyinelemeyi önlemek için, bir dalın özyinelemeli arama yaptığı ve diğerinin yapmadığı if… else deyimini (veya benzer bir yaklaşımı) kullanabilirsiniz.

Yani, genel olarak böyle görünüyor.

 function recurse() ( if(condition) ( recurse(); ) else ( // stop calling recurse() ) ) recurse();

Özyinelemeli fonksiyonun basit bir örneği, değeri 1'e kadar geri saymak olabilir.

Örnek 1: Numaraları Yazdır

 // program to count down numbers to 1 function countDown(number) ( // display the number console.log(number); // decrease the number value const newNumber = number - 1; // base case if (newNumber> 0) ( countDown(newNumber); ) ) countDown(4);

Çıktı

 4 3 2 1

Yukarıdaki programda, kullanıcı bir işlevi çağırırken argüman olarak bir sayı iletir.

Her yinelemede sayı değeri 1 azaltılır ve countDown()sayı pozitif olana kadar işlev çağrılır. İşte newNumber> 0temel koşul.

Bu özyinelemeli çağrı, aşağıdaki adımlarda açıklanabilir:

 countDown (4) 4 yazdırır ve countDown (3) countDown (3) 3 yazdırır ve countDown (2) countDown (2) çağrısı 2 yazdırır ve countDown (1) countDown (1) 1 yazdırır ve countDown (0) çağırır

Sayı 0'a ulaştığında , temel koşul karşılanır ve işlev artık çağrılmaz.

Örnek 2: Faktöriyel Bul

 // program to find the factorial of a number function factorial(x) ( // if number is 0 if (x === 0) ( return 1; ) // if number is positive else ( return x * factorial(x - 1); ) ) const num = 3; // calling factorial() if num is non-negative if (num> 0) ( let result = factorial(num); console.log(`The factorial of $(num) is $(result)`); )

Çıktı

 3'ün faktöriyeli 6'dır

Fonksiyonu factorial()pozitif bir tamsayı ile çağırdığınızda, sayıyı azaltarak kendini yinelemeli olarak çağıracaktır.

Bu işlem numara 1 olana kadar devam eder . Daha sonra sayı 0'a ulaştığında , 1 döndürülür.

Factorial'da JavaScript yinelemesinin çalışması

Bu özyinelemeli çağrı, aşağıdaki adımlarda açıklanabilir:

 factorial (3), 3 * factorial (2) factorial (2) döndürür 3 * 2 * factorial (1) factorial (1) döndürür 3 * 2 * 1 * factorial (0) factorial (0), 3 * 2 * 1 * döndürür 1

Ilginç makaleler...