Pemulihan Cepat (Dengan Contoh)

Dalam artikel ini, anda akan belajar membuat fungsi rekursif; fungsi yang memanggil dirinya sendiri.

Fungsi yang memanggil dirinya dikenali sebagai fungsi rekursif. Dan, teknik ini dikenali sebagai rekursi. Semasa membuat fungsi rekursif, anda mesti membuat syarat agar fungsi itu tidak memanggil dirinya sendiri tanpa batas (tanpa batas).

Bagaimana rekursi berfungsi di Swift?

 func recurse () (// pernyataan recurse ()) recurse () 

Gambar di bawah menunjukkan bagaimana rekursi berfungsi dengan memanggil dirinya berulang kali.

Dalam rajah aliran di atas, rekursi dilaksanakan tanpa had. Walau bagaimanapun, hampir sepanjang masa, anda membuat rekursi yang dilaksanakan sehingga beberapa syarat terpenuhi.

Untuk mengelakkan pengulangan yang tidak terbatas, gunakan panggilan rekursif di dalam Pernyataan Bersyarat Swift, misalnya jika … pernyataan lain.

Contoh 1: Cetak N nombor positif

 func countDownToZero(num: Int) ( print(num) if num> 0 ( countDownToZero(num: num - 1) ) ) print("Countdown:") countDownToZero(num:3) 

Apabila anda menjalankan program berikut, outputnya adalah:

 Kira-kira: 3 2 1 0

Dalam program di atas, pernyataan print("Countdown:")menghasilkan Countdown: di konsol. Dan pernyataan itu countDownToZero(num:3)memanggil fungsi yang mengambil parameter Integer.

Pernyataan di dalam fungsi countDownToZero()dijalankan dan jika keadaan num> 0dipenuhi, fungsi countDownToZero()dipanggil lagi sebagai countDownToZero(num: num - 1).

Sekiranya keadaan tidak dipenuhi, panggilan fungsi tidak dilakukan dan pengulangan berhenti.

Mari lihat ini secara berperingkat

Langkah pelaksanaan
Langkah-langkah Panggilan fungsi Bercetak angka> 0?
1 countDownToZero(3) 3 Ya
2 countDownToZero(2) 2 Ya
3 countDownToZero(1) 1 Ya
4 countDownToZero(0) 0 Tidak (Tamat)

Contoh 2: Cari faktor nombor

 func factorial(of num: Int) -> Int ( if num == 1 ( return 1 ) else ( return num * factorial(of:num - 1) ) ) let x = 4 let result = factorial(of: x) print("The factorial of (x) is (result)") 

Apabila anda menjalankan program berikut, outputnya adalah:

 Faktor faktor 4 adalah 24

Bagaimana contoh ini berfungsi?

Mari lihat ini secara berperingkat

Langkah pelaksanaan
Langkah-langkah Hujah dilalui Penyata kembali Nilai
1 4 return 4 * factorial(of:3) 4 * faktorial (daripada: 3)
2 3 return 3 * factorial(of:2) 4 * 3 * faktorial (daripada: 2)
3 2 return 2 * factorial(of:1) 4 * 3 * 2 * faktorial (daripada: 1)
4 1 return 1 4 * 3 * 2 * 1

Biasanya rekursi digunakan sebagai pengganti lelaran apabila penyelesaian masalah dapat dijumpai dalam dua langkah. Langkah pertama mencari jalan keluar, jika tidak mengulangi prosesnya.

Artikel menarik...