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.