Koodi kordamise vajadust ei saa kunagi alahinnata, kui otsitakse lahendusi maailma suurimatele probleemidele. Mida peate teadma, on see, et programmeerimisel on kordamine üks kahest vormist - iteratsioon või rekursioon.

Siin on eesmärk tutvustada teile kordamist koodis ja näidata, kuidas seda saab kasutada Java-programmide täiustamiseks.

Korduvad programmid aitavad teil lahendada kõige raskemaid programmeerimisprobleeme. Siin on see, mida peate teadma Java-s rekursiivsete programmide loomiseks.

Iteratsiooni kasutamine

Iteratsioon kasutab koodi kordamiseks silmusstruktuuri. Kolm iteratiivsete struktuuride tüüpi on testimiseelne silmus (while), testimisjärgne loop (do-while) ja vastukontrollitud silmus (jaoks).

Need iteratiivsed struktuurid toimivad koodiploki kordamisega, kuni konkreetne tingimus jääb alles tõsi, kuid niipea, kui see tingimus muutub valeks, peatub silmus ja programm naaseb oma normaalseks voolama.

Näiteks võiksime kasutada ühte iteratiivset struktuuri, et lahendada kõigi täisarvude 1 kuni n summa summa probleem. Sõltuvalt kasutatavast iteratiivsest struktuurist on lahendus konkreetne, kuid ükskõik milline kolm iteratiivset struktuuri võivad sellele probleemile lahenduse pakkuda järgmise abil pseudokood.

instagram viewer

Iteratsiooni pseudokoodi näide


START
DEKLEERI summa, loetakse täisarvuks
summa = 0
arv = 1
Korda
Summa = summa + arv
Loend = loenda + 1
KUNI loendini> n
LÕPP

Ülaltoodud pseudokoodil on kaks muutujat, summa ja arv, mis initsialiseeritakse vastavalt 0 ja 1. Muutuja "count" lähtestatakse väärtusele 1, kuna probleem, mida proovime lahendada, ütleb, et vajame kõigi täisarvude summat 1 kuni n.

Muutujale „n” määratakse kasutajalt juhuslik arv ja muutuja „count” suureneb ühe võrra kui tsükkel sooritatakse, kuid niipea, kui muutuja "count" väärtus ületab väärtuse "n", siis tsükkel seda teeb peatus.

Miks kasutada rekursiooni?

Kui peaksime uurima iteratsiooni ja rekursiooni ümbritsevaid fakte, leiame tõsi mitu asja.

  • Mõlemad meetodid hõlmavad kordamist.
  • Mõlemad meetodid nõuavad katsetingimust, mis näitab, millal peatuda.
  • Mõlemat meetodit saab teoreetiliselt rakendada igavesti, kui väljumistingimust ei anta ega täideta.
  • Kõik probleemid, mida saab lahendada iteratsiooni abil, saab lahendada ka rekursiooni abil ja vastupidi.

Miks peaksime siis valima ühe meetodi teise asemel? Lihtne vastus on tõhusus. Rekursiooni korral saab programmeerija kasutada vähem koodi, et saavutada sisuliselt sama tulemus. Vähem koodi tähendab seda, et vigade märkamatuks jäämise võimalus on märkimisväärselt vähenenud.

Rekursioon kasutab rohkem mälu ja on aeglasem kui iteratsioon, kuid sellel on sisseehitatud virn (andmestruktuur). Kordamise korral peaksite looma andmestruktuuri (sisuliselt ratta uuesti leiutama), jättes teie programmile suurema võimaluse lisakoodi tõttu tabamata vigadele.

Seotud: Java erandid: kas te käitute nendega õigesti?

Kuidas rekursioon töötab

Rekursioon on nimi, mis antakse protsessile, kus funktsioon kutsub end korduvalt, kuni konkreetne tingimus on täidetud. See korduv meetod lahendab probleemid, jagades need enda väiksemateks ja lihtsamateks versioonideks.

Iga rekursiivne funktsioon koosneb kahest osast - põhi- ja üldjuht.

Rekursiivse funktsiooni näite põhistruktuur


Funktsioon () {
// alusjuhtum
// üldine juhtum
}

Alusjuhtum on rekursiivse funktsiooni jaotis, mis probleemi lahendab. Niisiis, kui rekursiivne funktsioon jõuab baasjuhtumini, väljub programm rekursiivsest funktsioonist ja jätkab oma loomuliku vooluga.

Üldjuhtum on rekursiivse funktsiooni jaotis, mis kordub. See on koht, kus funktsioon ennast kutsub ja kus suurem osa tööst tehakse.

Rekursiooni kasutamine Java-s

Mõni programmeerimiskeel toetab ainult kordamist, teine ​​aga ainult rekursiooni. Õnneks on Java üks keeltest, mis toetab mõlemat korduvat meetodit.

Java-s kasutatakse rekursiooni umbes samamoodi, nagu seda kasutatakse mis tahes muus seda toetavas keeles. Peamine on alati tagada, et teie rekursiivsel funktsioonil oleks nii alus kui ka üldine juhtum selles järjekorras.

Naaseme tagasi meie esialgse liitmise näite juurde. Eesmärgiks on leida kõigi täisarvude summa vahemikus 1 kuni n, kus n on täisarv, mille kasutaja on edastanud.

Java rekursi näide


// rekursiivne funktsioon
int Sum (int n) {
// alusjuhtum
kui (n <= 1) {
tagastus 1;
}
// üldine juhtum
veel {
tagastus n + Sum (n-1);
}
}

Ülaltoodud rekursiivne funktsioon võtab täisarvu „n” ja lõpetab selle täitmise ainult siis, kui n väärtus on väiksem või võrdne 1.

Kui peaksime edastama täisarvu 5 ülaltoodud programmile, võtaks muutuja "n" väärtuseks 5. N-i väärtust kontrollitakse siis põhijuhul, kuid arvestades, et 5 on suurem kui 1, antakse nüüd n-täht üldjuhule.

Selles näites kutsub üldjuht rekursiivset funktsiooni neli korda. Lõpliku funktsioonikõne korral on n väärtus 1, mis vastab põhijuhtumi nõuetele, mille tulemusel rekursiivne funktsioon lõpetatakse ja tagastatakse 15.

Kui muudame väärtuse „n” väärtuseks 7, kutsub rekursiivne funktsioon ennast kuus korda ja naaseb enne täitmise lõpetamist 28.

Kas soovite seda ise proovida? Eespool toodud rekursiivse programmi saate käivitada, kasutades Java-programmi põhifunktsioonis järgmist koodirida.


System.out.println (summa (7));

Mida sa õppisid

Kui tegite selle läbi kogu selle artikli, on teil nüüd põhiteadmised kahest korduvast meetodist, mida programmeerimisel kasutatakse. Nüüd saate aru iteratsiooni ja rekursiooni sarnasustest ning sellest, miks arendaja valiks rekursiooni iteratsiooni asemel ja kuidas rekursiivset funktsiooni Java-s kasutada.

Pildikrediit: ThisIsEngineering /Pexels

E-post
Mis on rekursioon ja kuidas seda kasutada?

Õppige rekursiooni põhitõdesid, mis on programmeerijate jaoks hädavajalik, kuid veidi mõistust painutav tööriist.

Loe edasi

Seotud teemad
  • Programmeerimine
  • Java
Autori kohta
Kadeisha Kean (7 artiklit on avaldatud)

Kadeisha Kean on täismahus tarkvaraarendaja ja tehnikakirjutaja. Tal on selge võime lihtsustada mõnda kõige keerukamat tehnoloogilist kontseptsiooni; materjali tootmine, mis on hõlpsasti mõistetav igale tehnoloogia algajale. Ta on kirglik kirjutamise, huvitava tarkvara väljatöötamise ja maailmas ringi liikumise üle (dokumentaalfilmide kaudu).

Veel Kadeisha Keanilt

Telli meie uudiskiri

Liituge meie uudiskirjaga, kus leiate tehnilisi näpunäiteid, ülevaateid, tasuta e-raamatuid ja eksklusiivseid pakkumisi!

Veel üks samm !!!

Palun kinnitage oma e-posti aadress meilis, mille me just saatsime.

.