A függvények miben különböznek a goto vezérlési szerkezetektől?
Egy függvény (illetve egy eljárás) lefutása után a kód a függvényt (vagy eljárást) meghívó kód utáni utasításokat hajtja végre. A goto esetén ha ezt akarjuk elérni, akkor egy újabb goto-t kell alkalmazni, ami nehezen áttekinthetővé teszi a kódot.
Egy függvénynek (illetve egy eljárásnak) adhatsz meg paramétereket - goto esetén ehhez globális változókat kell felhasználnod.
Egy függvény (illetve egy eljárás) magján belül használhatsz lokális változókat, amelyek a program magjából nem érhetőek el. Goto esetén ez nem alkalmazható.
Ahogy #1-es írta, a függvénynek vannak olyan extra tulajdonságai, mint pl. lokális változók, amik nem ütköznek a felettes szinten lévő változónevekkel, és (alap esetben) megszűnnek a kilépéskor.
A másik, hogy a függvényhívás hardver szinten van támogatva, és garantálja, hogy a hívási pont után fog folytatódni a végrehajtás. Ez nem is igazán függ a programozótól, tuti oda fog visszaugrani a végrehajtás. GOTO-val erre nincs garancia, és spagetti kód lehet belőle.
A harmadik a paraméter kezelés. Egy függvény paraméterei az ő saját lokális változói lesznek, nem kell magasabb szinten deklarálni, vagy egyéb csavarokat megtenni, hogy ne ütközzön más adatokkal. (Ld. pl. rekurzív híváskor is minden híváshoz külön paraméter adatok tartoznak.) Ezt GOTO-val macerás megoldani, és poetnciális hibaforrás.
Ha a BASIC nyelv goto-jára gondolszb az egy egyszerű feltétel nélküli ugróutasítás. Átgondolt programszerkesztéssel nincs rá szükség.
A függvények inkább a gosub-return párossal definiált szubrutinokra hasonlítanak.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!