A kód megismétlésének szükségességét soha nem lehet lebecsülni, ha megoldásokat keresünk a világ legnagyobb problémáira. Amit tudni kell, hogy a programozás során az ismétlés kétféle formában valósul meg - iteráció vagy rekurzió.
A cél itt megismertetni az ismétléssel a kódban, és bemutatni, hogyan lehet felhasználni a Java programok fejlesztésére.
Az ismétlődő programok segíthetnek a legnehezebb programozási problémák megoldásában. A rekurzív programok Java-ban történő létrehozásához a következőket kell tudnia.
Az iteráció használata
Az iteráció hurokszerkezetet használ a kód megismétléséhez. Az iteratív struktúrák három típusa: pre-test loop (while), post-test loop (do-while) és ellen vezérelt hurok (for).
Ezek az iteratív struktúrák egy blokk megismétlésével működnek, miközben egy adott feltétel megmarad igaz, de amint ez a feltétel hamissá válik, a hurok leáll, és a program visszatér a normális állapotába folyam.
Például alkalmazhatjuk az iteratív struktúrák egyikét az 1-től n-ig terjedő egész számok összegének problémájának megoldására. Az alkalmazott iteratív struktúrától függően a megoldás egy meghatározott formát fog kapni, de bármelyik a három iteratív struktúra megoldást kínálhat erre a problémára az alábbiak felhasználásával álkód.
Iterációs álkód példa
RAJT
DECLEARE összeg, számít egész számnak
összeg = 0
szám = 1
ISMÉTLÉS
Összeg = összeg + számolás
Count = count + 1
UNTIL számig> n
VÉGE
A fenti álkódnak két változója van, az összeg és a szám, amelyek inicializálva vannak 0-ra és 1-re. A "count" változót inicializáljuk 1-re, mert a probléma, amelyet megpróbálunk megoldani, kijelenti, hogy szükségünk van az összes egész számra 1-től n-ig.
Az „n” változóhoz véletlenszerű számot rendel a felhasználó, a „count” változó pedig eggyel növekszik amikor egy ciklus végrehajtásra kerül, de amint a „count” változó értéke meghaladja az „n” értékét, a hurok megteszi álljon meg.
Miért érdemes használni a rekurziót?
Ha megvizsgálnánk az iterációval és a rekurzióval kapcsolatos tényeket, több dolgot is igaznak találunk.
- Mindkét módszer magában foglalja az ismétlést.
- Mindkét módszerhez tesztfeltételre van szükség, amely jelzi, hogy mikor kell megállni.
- Mindkét módszer elméletileg véglegesen végrehajtható, ha a kilépési feltétel nincs megadva vagy nem teljesül.
- Minden iterációval megoldható probléma rekurzióval és fordítva is megoldható.
Miért akarjuk tehát az egyik módszert választani a másik helyett? Az egyszerű válasz a hatékonyság. Rekurzióval a programozó kevesebb kódot használhat arra, hogy lényegében azonos eredményt érjen el. A kevesebb kód azt jelenti, hogy jelentősen csökken a hibák észrevétlenségének lehetősége.
A rekurzió több memóriát használ, és lassabb, mint az iteráció, de beépített verem van benne (adatstruktúra). Az iterációval fel kell építenie egy adatstruktúrát (lényegében újratalálva a kereket), így a program nyitva áll az extra kód miatt el nem fogott hibák lehetőségének nagyobb lehetősége mellett.
Összefüggő: Java kivételek: Jól kezeled őket?
Hogyan működik a rekurzió
A rekurzió annak a folyamatnak a neve, amelyben egy függvény ismételten felhívja magát, amíg egy adott feltétel nem teljesül. Ez az ismétlődő módszer úgy oldja meg a problémákat, hogy kisebb, egyszerűbb verziókra bontja őket.
Minden rekurzív függvény két részből áll - alap- és általános esetből.
A rekurzív függvény példa alapstruktúrája
Funkció(){
//alap helyzet
// általános eset
}
Az alapeset a rekurzív függvény azon része, amely megoldja a problémát. Tehát, amikor a rekurzív függvény megérkezik az alapesetbe, a program kilép a rekurzív funkcióból és folytatja a természetes áramlását.
Az általános eset a rekurzív függvény ismétlődő szakasza. Itt hívja magát a függvény, és itt végezzük a munka nagy részét.
A Rekurzió használata Java-ban
Egyes programozási nyelvek csak az iterációt támogatják, míg mások csak a rekurziót. Szerencsére a Java az egyik olyan nyelv, amely mindkét ismétlődő módszert támogatja.
A Java-ban a rekurziót ugyanúgy használják, mint bármely más, ezt támogató nyelven. A legfontosabb az, hogy mindig biztosítsuk, hogy a rekurzív függvénynek legyen alapja és általános esete is ebben a sorrendben.
Térjünk vissza a kezdeti összegző példánkhoz, a cél az összes egész számának megtalálása 1-től n-ig, ahol n a felhasználó által megadott egész szám.
Java rekurziós példa
// rekurzív függvény
int Összeg (int n) {
//alap helyzet
ha (n <= 1) {
visszatér 1;
}
// általános eset
más{
visszatérés n + Összeg (n-1);
}
}
A fenti rekurzív függvény egész számot vesz fel, és csak akkor fejezi be a végrehajtását, ha az n értéke kisebb vagy egyenlő, mint 1.
Ha az 5-ös egész számot átadnánk a fenti programnak, akkor az "n" változó 5-ös értéket vesz fel. Az „n” értékét ekkor ellenőriznénk az alapesetben, de mivel az 5 nagyobb, mint 1, az „n” értéke átkerül az általános esetbe.
Ebben a példában az általános eset négyszer hívja meg a rekurzív függvényt. A végső függvényhíváskor az „n” értéke 1 lesz, amely ténylegesen megfelel az alapeset követelményeinek, ami a rekurzív függvény megszüntetését és a 15 visszatérést eredményezi.
Ha az „n” értékét 7-re változtatjuk, akkor a rekurzív függvény hatszor hívja magát és 28-at ad vissza, mielőtt befejezné a végrehajtását.
Szeretné kipróbálni saját maga? A fenti rekurzív programot a Java program fő funkciójának következő kódsorával hajthatja végre.
System.out.println (Összeg (7));
Amit megtanultál
Ha végigcsinálta ezt az egész cikket, akkor alapvető ismerete van a programozásban használt két ismétlődő módszerről. Most már felismeri az iteráció és a rekurzió közötti hasonlóságokat, és azt, hogy miért választja a fejlesztő a rekurziót az iteráció helyett, valamint a rekurzív függvény használatát a Java-ban.
Kép jóváírás: ThisIsEngineering /Pexels
Ismerje meg a rekurzió alapjait, a programozók számára elengedhetetlen, de kissé észbontó eszközt.
Olvassa el a következőt
- Programozás
- Jáva

Kadeisha Kean Full-Stack szoftverfejlesztő és műszaki / technológiai író. Különleges képessége van a legösszetettebb technológiai koncepciók egyszerűsítésére; bármilyen technológiai kezdő számára könnyen érthető anyag előállítása. Szenvedélyes az írás, az érdekes szoftverek fejlesztése és a világ körüli utazás (dokumentumfilmek révén).
Iratkozzon fel hírlevelünkre
Csatlakozzon hírlevelünkhöz, amely műszaki tippeket, véleményeket, ingyenes e-könyveket és exkluzív ajánlatokat tartalmaz!
Még egy lépés…!
Kérjük, erősítse meg e-mail címét az imént elküldött e-mailben.