Grananje - naredba if i if..else
4. Višestruko uvjetno grananje
4.1. Primjeri
Primjer 1.
Program za učitani cijeli broj ispisuje je li djeljiv s 2 ili ne koristeći se samo naredbom if..else.
Rješenje
#include<stdio.h>int main()
{
int a;
printf("Upisite jedan broj: ");
scanf("%d",&a);
if (a%2!=0) // ili samo (a%2)
printf("Ucitani broj nije djeljiv s 2.\n");
else
printf("Ucitani broj je djeljiv s 2.\n");
return 0;
}
Napomena: Promjenom broja s kojim dijelimo možemo provjeriti djeljivost sa bilo kojim brojem! U video lekciji je provjerena djeljivost učitanog broja sa 7. Promotrite male razlike u kodovima! Dakle ne postoji jedno jedinstveno rješenje, zadatak se može riješiti na više načina, a koji će te odabrati ovisi o vama.
1. Koje će vrijednosti imati varijable x = 5 i y = 2 nakon izvršavanja sljedećih naredbi?
a) if (x>y) x=y;else y=x;
b) if (x=y)
{
x++;
y+=x;
}
else
{
y--;
x+=y;
}
c) if (x<y)
{
x=y;
y=x;
}
else
{
y++;
x=y;
}
d) if (x>y)
y++;
else
x++;
x=2*y;
Rješenje
a) x = 2, y = 2 //uvjet je istinit pa se izvršava naredba unutar if.
b) x = 3, y = 5 /*uvjet je zapravo naredba pridruživanja pa x postaje jednak 2. Time je uvjet različit od 0 i izvršava se blok naredbi unutar if */.
c) x = 3, y = 3 //uvjet nije istinit pa se izvršava naredba unutar else.
d) x = 6 y = 3 /*uvjet je istinit pa se izvršava naredba unutar if, ali izvršava se i posljednja naredba jer nije vezana uz naredbu if.*/