Rekursio C:ssä
Tutustutte rekursiivisiin funktioihin, niiden käyttötapauksiin ja rekursion sekä iteraation eroihin.
Rekursio C:ssä on ilmainen C Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/3. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu C Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. C Academy-kurssilla on yhteensä 3 oppituntia.
Rekursio C-kielessä
Rekursio on tekniikka, jossa funktio kutsuu itseään ongelman ratkaisemiseksi.
Tässä oppitunnissa opitte:
- Mitä rekursio on ja miten se toimii.
- Miten rekursiivisia funktioita toteutetaan.
- Miten rekursio ja iteraatio eroavat toisistaan.

Mitä rekursio on?
Rekursiossa funktio kutsuu itseään ratkaistakseen ongelman pienemmän osan.
Esimerkkisyntaksi:
void function() {
function(); // Recursive call
}
Jokaisella rekursiivisella funktiolla on oltava perustapaus, joka estää rekursion jatkumisen loputtomasti.
Esimerkki: rekursio
Tämä ohjelma havainnollistaa rekursiota tulostamalla luvut 5–1.
#include <stdio.h>
void countDown(int n) {
if (n <= 0) return; // Base case
printf("%d\n", n);
countDown(n - 1); // Recursive call
}
int main() {
countDown(5);
return 0;
}Rekursion perustapaus
Rekursiiviseen funktioon on sisällytettävä perustapaus rekursion lopettamiseksi.
Esimerkki:
if (n == 0) return;
Ilman perustapausta funktio kutsuu itseään loputtomasti, mikä aiheuttaa pinon ylivuodon.
Esimerkki: kertoma rekursion avulla
Tämä ohjelma laskee luvun kertoman rekursion avulla.
#include <stdio.h>
int factorial(int n) {
if (n == 0) return 1; // Base case
return n * factorial(n - 1);
}
int main() {
printf("Factorial of 5: %d\n", factorial(5));
return 0;
}Rekursio ja iteraatio
Rekursiolla ja iteraatiolla (silmukoilla) voidaan saavuttaa sama tulos, mutta ne toimivat eri tavoin.
Erot:
- Rekursio käyttää funktiokutsuja ja vaatii enemmän muistia.
- Iteraatio käyttää silmukoita ja on yleensä tehokkaampaa.
- Rekursio tekee koodista yksinkertaisempaa esimerkiksi puun läpikäynnissä.
Esimerkki: Fibonaccin lukujono (rekursiivinen)
Tämä ohjelma laskee Fibonaccin lukujonon rekursion avulla.
#include <stdio.h>
int fibonacci(int n) {
if (n <= 1) return n;
return fibonacci(n - 1) + fibonacci(n - 2);
}
int main() {
printf("Fibonacci(5): %d\n", fibonacci(5));
return 0;
}Milloin rekursiota käytetään?
Rekursio on hyödyllinen ongelmissa, joihin liittyy:
- Puun läpikäynti.
- Peruutushaku (esimerkiksi sokkeloiden ratkaiseminen).
- Matemaattiset ongelmat, kuten kertoma ja Fibonacci.
Yhteenveto
Tässä oppitunnissa opitte:
- Mitä rekursio on ja miten se toimii.
- Perustapauksen tärkeyden.
- Rekursion ja iteroinnin välisen eron.
Seuraavaksi tutustumme C-kielen taulukoihin ja merkkijonoihin!

Opi C tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 39
- Oppitunnit
- 144
Usein kysytyt kysymykset
Onko oppitunti ”Rekursio C:ssä” ilmainen?
Kyllä – oppitunnin ”Rekursio C:ssä” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko C Academy-kurssin, päivitä CoddyKit PROhon. C Academy-kurssilla on yhteensä 3 oppituntia.
Mitä opin oppitunnilla ”Rekursio C:ssä”?
Tutustutte rekursiivisiin funktioihin, niiden käyttötapauksiin ja rekursion sekä iteraation eroihin. Harjoittelet C Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni C Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin C Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/3.
Kuinka kauan ”Rekursio C:ssä”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä C Academy-oppitunnilla?
Kyllä. Jokainen C Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.