3.2. Složeno grananje: naredba if…else…

Do sada smo upoznali algoritamsku strukturu grananja kojom se omogućuje da se u računalnom programu provedu odluke. Ta odluka bila je da se izvrši naredba ili blok naredbi ako je (if) neki logički uvjet točan (ispunjen/istinit) True. Danas ćemo upoznati naredbu if…else… koja izvršava dio računalnog programa (kôd-a) ako neki logički uvjet nije točan (nije ispunjen/lažan je) False.

Kao što se u svakodnevnom životu često susrećemo s nekim odlukama, tako je i pri stvaranju računalnog rješenja često izvršiti zadatak koji ovisi o nekoj odluci u programu. (ako je ta tvrdnja točna -> izvrši mi “to i to” – inače (ako nije) -> izvrši mi “to i to”).

Kada pišemo računalne programe često dolazimo u situaciju kad postoji neko pitanje na koje tražimo odgovor u obliku računalnih naredbi koje je potrebno izvršiti (provjeravamo je li je neki broj pozitivan ili nije, provjeravamo je li je neki broj djeljiv s nekim drugim brojem, je li je paran ili neparan i sl.).

Ponovimo!
U navedenim smo primjerima upotrijebili pitanja, odnosno odluke koje su uvijek imale odgovor DA ili NE. Za postavljanje pitanja u uvjetima služimo se relacijskim operatorima.

RELACIJSKI OPERATORDJELOVANJE
>veće od
<manje od
>=veće od ili jednako
<=manje od ili jednako
==jednako
!=nije jednako (različito)

Računalni programi mogu razumjeti samo uvjete koji kao rezultat vraćaju vrijednosti DA (istina) ili NE (laž) zbog čega takve uvjete nazivamo logičkim uvjetima. Kada je rezultat logičkog uvjeta DA, obično se kaže da je uvjet ispunjen, odnosno kada je rezultat logičkog uvjeta NE, kažemo da uvjet nije ispunjen.

Ovakav oblik algoritamske strukture u kojoj se koriste logički uvjeti (odluke) nazivaju se grananje.

PRAVILA!
Nakon rezervirane riječi if i logičkog uvjeta uvijek se piše dvotočka. Ona najavljuje naredbu ili blok naredbi koje je potrebno izvršiti ako je logički uvjet ispunjen.
Nakon upisivanja dvotočke i pritiska na tipku Enter, programski jezik Python automatski postavlja uvlaku (4 prazna mjesta – razmaka ili 1x tipka Tab). Ako nedostaje uvlaka ispred naredbi unutar naredbi if, if…else… i if…elif…else…, pojavit će se poruka o pogrešci (Sintax Error).
U slučajevima kada je nakon dvotočke potrebno upisati više naredbi koje pripadaju naredbi if, sve naredbe treba upisivati s jednakom uvlakom. Takve naredbe čine niz koji nazivamo blokom naredbi.
Nakon što se napiše posljednja naredba jednog bloka i prijeđe u novi redak, potrebno je pokazivač vratiti na početak retka (pomaknuti za 4 mjesta ulijevo). Npr.


Kada u računalnom programu želimo ispitati je li neki broj pozitivan ili nije primijenit ćemo naredbi if…else… (ako…inače…). Ako je broj pozitivan, ispiši “Broj je pozitivan”, inače ispiši “Broj nije pozitivan.”
Naredba if…else… primjenjuje se na sljedeći način:

U ovom primjeru je upotrijebljen jedan logički uvjet, izvršili dvije naredbe (ili blok naredi) ovisno o vrijednosti logičkog uvjeta:

  • ako je uvjet istinit (True), izvršava se naredba1 (ili blok naredbi1)
  • ako uvjet nije istinit (False), izvršava se naredba2 (ili blok naredbi2).

Koje su najčešće pogreške u radu s naredbom grananja?
U naredbama grananja obično je najteže definirati logički uvjet. Računalo, odnosno programski jezik ne zna što znači da je broj pozitivan ili paran pa moramo sami pronaći rješenje kako prikazati logički uvjet (odluku). Najčešće to radimo pomoću matematičkih izraza. Pritom treba paziti na to da se u logičkom uvjetu krije neko pitanje. Obično provjeravamo je li neka vrijednost jednaka, veća ili manja od druge vrijednosti.

VJEŽBE

Provjeri svoje rješenje!

Provjeri svoje rješenje!

Provjeri svoje rješenje!

Provjeri svoje rješenje!

Provjeri svoje rješenje!

DOMAĆI RAD

1. U bilježnicu uredno prepiši plan ploče.
naslov -> tekst

2. U bilježnicu uredno prepiši zadatke i napiši odgovore. Provjeri svoja rješenja u Pythonu.
naslov -> zadatak -> rješenje -> zadatak -> rješenje….