Hirdetés

Új hozzászólás Aktív témák

  • Szmeby

    tag

    válasz #74220800 #9124 üzenetére

    Szuper.
    Jól gondolod, az && meg a || shortcut operátornak is hívja magát, ha a feltétel eleje önmagában is meghatározza a feltétel kimenetelét a többi része már fel sem hívódik.

    "De miért nem megy úgy, ha előszór a rekurzív képletet hívom meg ..."

    Azért mert a rekurzív hívásnak le kell futnia ahhoz, hogy a feltételben ki lehessen értékelni. De nem fut le. Belemegy a metódusba újra új paraméterekkel, majd azon belül is újra megint új paraméterekkel, és így tovább. A végtelen ciklus miatt csak befelé megy, sose jön ki onnan. Valaminek terminálnia kell, csak akkor jut vissza, akkor tudja azt mondani, hogy true vagy false, az if-ben akkor ki tud értékelődni, és lefutna a programod.

    Nézd át újra a rekurzióról tanultakat. Vagy tényleg tegyél bele egy breakpointot, és - ha Eclipse-et használsz - nyomogasd az F5-öt a flow hívásnál. Ezzel belelép... megnézheted, miben változtak a paraméterek és hogy a hívás meddig jut el a metódusban, mielőtt újra ráhívna saját magára, F5. Nézd közben a stack-et is, minden egyes rekurzív hívásnál egy új sorral bővül.
    Ha már érted, vedd ki a breakpointot és F8-cal engedd el, hadd teljesítse be a végzetét. :)

Új hozzászólás Aktív témák