Programske petlje

--

9. Ugniježđena i bekonačna petlja

Petlje for se mogu pisati jedna unutar druge, tj. biti ugniježđene jedna unutar druge.
Pri ulazu u vanjsku petlju, kontrolna varijabla vanjske petlje poprima početnu vrijednost. Provjerava se uvjet vanjske petlje, pa ako je ispunjen, ulazi se u unutarnju petlju.
Pri ulazu u unutarnju petlju, kontrolna varijabla unutarnje petlje poprima početnu vrijednost, provjerava se uvjet unutarnje petlje, pa ako je ispunjen izvršava se blok naredbi unutarnje petlje.
Po završetku bloka naredbi unutarnje petlje mijenja se vrijednost kontrolne varijable unutarnje petlje za vrijednost prirasta unutarnje petlje. Sve dok je zadovoljen uvjet unutarnje petlje njen blok naredbi se opetovano ponavlja uz stalnu vrijednost kontrolne varijable vanjske petlje.
Kada uvjet unutarnje petlje nije ispunjen izlazi se iz unutarnje petlje i ponovo se počne izvršavati vanjska petlja. Vrijednost kontrolne varijable vanjske petlje se mijenja za vrijednost prirasta, provjerava se uvjet vanjske petlje pa ako je ispunjen, ulazi se u unutarnju petlju. Sada se ponovo ponavlja opisan postupak izvršavanja unutarnje petlje.
Sve se ponavlja do trenutka kada uvjet vanjske petlje više nije ispunjen. Za svaku vrijednost kontrolne varijable vanjske petlje izvodi se cjelokupna unutarnja petlja.




Može se dogoditi da je uvjet petlje uvijek ispunjen. Petlja će se tom slučaju izvoditi beskonačno puta.

 Da bi se izbjegla beskonačna petlja, treba:

  1. Zadati uvjet koji jamči konačan broj ponavljanja petlje.
  2. Navesti sva tri izraza u zagradi iza naredbe for.
  3. Izbjegavati promjenu vrijednosti kontrolne varijable petlje unutar bloka naredbi petlje.