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.

instagram viewer

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

Email
Mi a rekurzió és hogyan használod?

Ismerje meg a rekurzió alapjait, a programozók számára elengedhetetlen, de kissé észbontó eszközt.

Olvassa el a következőt

Kapcsolódó témák
  • Programozás
  • Jáva
A szerzőről
Kadeisha Kean (7 cikk megjelent)

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).

Több Kadeisha Kean-tól

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.

.