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.

Primjer 2.

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.*/