Gnezdenje klicev

Videli smo že nekaj primerov, ko ena funkcija kliče drugo. Možno je tudi, da druga funkcija spet kliče prvo:

Izvedi Počisti



Funkcija Prva torej lahko pokliče funkcijo Druga, čeprav je ta deklarirana pozneje v programu. Pomembno je le, da prvi klic funkcije Prva nastopi šele po tistem, ko je tolmač že prebral deklaracijo funkcije Druga. V našem primeru prvi klic funkcije Prva nastopi šele čisto na koncu programa, tako da s tem ni težav.

Zaženimo zgornji program. Iz izpisa lahko lepo vidimo, kako so klici gnezdeni eden v drugem. Ko se izvajanje vrne iz vgnezdenega klica, se nadaljuje z naslednjim stavkom zunanjega klica in tako naprej.

Funkcija lahko kliče tudi neposredno sámo sebe – temu pravimo rekurzija.

Za radovedne