Pengantar Rekursi
Termasuk bagian Logika dan Alur dalam perjalanan Dart di Coddy. Pelajaran 47 dari 65.
Rekursi adalah teknik pemrograman ketika sebuah fungsi memanggil dirinya sendiri untuk menyelesaikan masalah. Bayangkan seperti melihat ke dalam dua cermin yang saling berhadapan: setiap pantulan memuat versi gambar yang sama dengan ukuran lebih kecil, sehingga menciptakan perulangan tak terbatas sampai pantulannya terlalu kecil untuk dilihat.
Setiap fungsi rekursif memerlukan dua komponen penting agar berfungsi dengan baik. Kasus dasar adalah kondisi yang menghentikan rekursi, seperti titik ketika pantulan cermin menjadi terlalu kecil untuk diperhatikan. Tanpa kasus dasar, fungsi kamu akan terus memanggil dirinya sendiri, hingga akhirnya membuat programmu mengalami crash.
Langkah rekursif adalah bagian saat fungsi memanggil dirinya sendiri dengan versi masalah awal yang telah diubah. Setiap kali fungsi memanggil dirinya sendiri, fungsi tersebut harus mengerjakan versi masalah yang lebih kecil atau lebih sederhana, secara bertahap bergerak menuju kasus dasar.
Bayangkan kamu sedang mencari kunci di tumpukan kertas. Kamu bisa memeriksa kertas paling atas, dan jika kuncimu tidak ada di sana, kamu akan melakukan hal yang sama pada sisa tumpukan (yang kini berkurang satu kertas). Kamu akan terus mengulangi proses ini sampai menemukan kuncimu atau tidak ada lagi kertas yang bisa diperiksa.
Pendekatan memecah masalah besar menjadi masalah-masalah kecil yang identik inilah yang membuat rekursi sangat ampuh untuk jenis tantangan pemrograman tertentu.
Coba sendiri
Pelajaran ini tidak memiliki tantangan kode.
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Manipulasi list Tingkat Lanjut
Properti list: first dan lastStatus list: isEmpty dan isNotEmpMembalikkan listMenambahkan ke list: insertMenghapus dari list: removeWhereMencari dalam list: indexOfMengurutkan listMengacak listRekap: Pengatur list4Manipulasi Map Lanjutan
Melakukan perulangan pada MapMemeriksa kunci dan nilaiProperti Map: kunci dan nilaiPenambahan Bersyarat: putIfAbsentMenghapus Entri dari MapMap BersarangRingkasan: Pembaruan Inventaris2Operasi Fungsional pada list
Mengubah dengan 'map'Menyaring dengan 'where'Menggunakan '.toList()'Memeriksa Kondisi dengan 'any'Kondisi dengan 'every'Menemukan dengan 'firstWhere'Ulasan: Penyaringan Data5Proyek: Perhitungan Keranjang Belanja
Menyiapkan ProyekMenambahkan Barang ke Keranjang3set
Apa itu set?Membuat setMenambahkan dan menghapus elemen dari setMemeriksa elemen dalam setMengubah list menjadi setGabungan setIrisan setSelisih setRangkuman: Daftar tamu unikLatihan sendiri: Compiler Dart online