Grananje - naredba if i if..else

6. Dodatni materijali

6.1. Rješenja zadataka iz video lekcije

Zadatak 1.

Koliki su x i y nakon sljedećih naredbi?

int x = 10, y= 5;
if (x-y == x+y)
{
     x+=5;
}
y=x*3;


Rješenje:

Uvjet (x-y==x+y) je lažan (10 - 5 == 10 + 5 → 5 == 15 što nije istina) pa se naredba unutar funkcije if neće izvršiti. Naredba y=x*3; nije unutar funkcije if i ona se izvršava. Dakle na izlazu će vrijednost varijable x ostani nepromijenjena i jednaka 10, a y = 10 * 3 = 30.


Zadatak 2.

Koliki je y nakon izvođenja sljedećih naredbi?

int x=10;
if (x>4)
{
   y=x*x;
   y=y+2;
}
else
{
   y=3*x;
   y=y-2;
}
y=y-22;


Rješenje:

Uvjet u if (x>4) je istinit pa se izvršava blok naredbi unutar njega:

y=x*x;   →  y = 10 * 10 = 100
y=y+2;     y= 100 + 2 = 102 pripazite da uvijek uvrsite zadnju vrijednost od y!

Naredbe pod else se neće izvršiti! No posljednja naredba nije vezana uz if..else pa se izvršava:

y=y-22;   →   y= 102 - 22 = 80

Dakle vrijednost x se neće mijenjati tijekom ovog programa, a vrijednost y na kraju programa je 80.