Programska petlja for

1. Petlja for

Naredba for najčešće se primjenjuje u zadatcima u kojima je broj ponavljanja unaprijed poznat. To je najopćenitija vrsta petlje i najčešće se koristi. U pseudojeziku zapisujemo je ovako:

               za i = x do y činiti
                  naredba

 

U programskom jeziku C  ima oblik:

              for (inicijalizacija; uvjet; promjena_vrijednosti)
              {
                   blok_naredbi;
              }

 

gdje:
  • inicijalizacija znači postavljanje kontrolne varijable (i/ili dodatnih varijabli) na početnu vrijednost
  • uvjet je uvjet koji kontrolna varijabla mora zadovoljiti da bi se izvršile naredbe u petlji (blok naredbi), a
  • promjena_vrijednosti je dio u kojem se određuje način promjene stanja kontrolne varijable.

Kontrolna varijabla kontrolira broj prolazaka petljom, a najavljuje (deklarira) se kao i sve ostale varijable koje se koriste u programu. Njezina se vrijednost automatski mijenja svakim prolaskom kroz petlju kako je to određeno promjenom_vrijednosti. U nekim programskim jezicima kontrolna varijabla mora biti rednog tipa (obično cijeli broj), no u C-u ona može biti i realan broj!

Tijek izvršavanja petlje for jest:

  1. Ako je prisutna inicijalizacija, kontrolna varijabla (i/ili dodatne varijable) postavlja se na početnu vrijednost (ako je to izraz, izračuna se njegova vrijednost, a nakon toga se ta vrijednost pridruži kontrolnoj varijabli).
  2. Ako je prisutan uvjet, provjerava se njegova istinitost. Izračunata vrijednost je logičkog tipa (istina ili laž). Ako je rezultat istina, izvodi se blok naredbi. (Ne zaboravite, u C-u se istinom smatra ono što je različito od 0.)
  3. Ako je prisutna promjena_vrijednosti, promjeni se vrijednost kontrolne varijable. Program se vraća na početak petlje te se ona ponavlja od točke 2.
  4. Ako je vrijednost uvjeta neistina, blok naredbi se preskače i program se nastavlja prvom naredbom nakon bloka.

Dijagram tijeka petlje for :

Dijelovi programske petlje for mogu se i izostaviti, ali da bi se zadovoljila sintaksa C-a obvezno je napisati null naredbu ;.

Promotrite ovako napisan zadatak:

#include <stdio.h>
int main()
{
     int i=1;
     for(;i<=7;i++)
           printf("%d \n",i);
     return 0;
}

 

OBJAŠNJENJE: U sintaksi petlje for izostavljen je dio s inicijalizacijom, no ona je napisana izvan petlje pa će se petlja normalno izvršiti. Na isti se način može izostaviti promjena vrijednosti kontrolne varijable, ali se mora osigurati njezina promjena (i približavanje uvjetu zaustavljanja) unutar bloka naredbi u petlji for. Izostavljanje uvjeta zaustavljanja moglo bi stvoriti beskonačnu petlju (petlja koja se ne može zaustaviti sama), zato treba biti oprezan.

Napomena: Vitičaste zagrade za oznaku početka i završetka bloka nisu potrebne jer se ponavlja samo jedna naredba. One se koriste samo kada se treba ponavljati više naredbi (blok naredbi).