Višestruko grananje sa case

     

 

Obzirom da je uporaba više if naredbi nepregledna za neka višestruka grananja upotrebljava se naredba case.

Naredbu case upotrebljavamo kod višestrukog grananja koje ovisi o vrijednosti nekog izraza. Ukoliko izraz ili varijabla tijekom programa mogu poprimiti različite vrijednosti i ovisno o tim vrijednostima treba izvršiti različite blokove naredbi upotrijebit ćemo case, jer je pregledniji od niza if naredbi.

Opći oblik naredbe je:

case izraz of

    konstanta_1:blok_naredbi_1;
    konstanta_2:blok_naredbi_2;
    .....
    konstanta_n:blok_naredbi_n;

end;

Napomena:

Case je jedina naredba koja ima end, a nema begin!

Pripazite:


Vrijednost izraza mora biti istog tipa kao i konstante (neki od rednih tipova podataka).

Naredba case izvršava se na sljedeći način: Najprije se izračuna vrijednost izraza, a zatim se uspoređuje sa nizom konstanti (1 do n). Ako je dobivena vrijednost jednaka jednoj od konstanti, izvršava se blok naredbi pridružen toj konstanti, ako dobivena vrijednost nije jednaka niti jednoj od navedenih konstanti prelazi se na prvu sljedeću naredbu iza case.

Ako dobivena vrijednost nije jednaka niti jednoj od navedenih konstanti, a potrebno je izvršiti neki blok naredbi u tom slučaju može se upotrijebit else pa je opći oblik naredbe tada:

case izraz of

    konstanta_1:blok_naredbi_1
    konstanta_2:blok_naredbi_2;
    ....
    konstanta_n:blok_naredbi_3;
  else
    blok-naredbi_n+1;

end;

Dijagram tijeka za case naredbu je:

Pokrenite FreePascal i riješite sljedeće zadatke.

Zadatak 1:

Za učitani prosjek učenika ispiši opći uspjeh riječima.

Zadatak 2:

Za učitani cijeli broj od 1 do 12 ispiši koliko taj mjesec ima dana.

Napomena. Ista naredba može se dodijeliti većem broju konstanti, ali tada moramo konstante odvojiti zarezom.

Riješite i zadatke koji slijede! Vidjet ćete da grananje zapravo i nije neki problem :)!