if...else, switch

Grananje sa if i if..else

Jednostavna if izjava ima oblik:
if (uvjetni izraz)
izjava ili grupa izjava (naredbe);
Uvjet može biti jednostavan relacijski izraz ili kombinacija izraza spojenih sa logičkim operatorima. Izraz mora biti unutar okruglih zagrada. Izjava if postupa u skladu sa istinitom ili lažnom vrijednošću uvjetnog izraza. Ukoliko je izraz istinit, izjava ili grupa izjava, koje slijede, se izvršavaju. Ukoliko želimo koristiti grupu izjava, one moraju biti zatvorene unutar vitičastih zagrada.

Primjer 1: Unesi broj. ako je pozitivan ispiši njegov prethodnik, a ako je negativan ispiši njegov sljedbenik.
            # include <stdio.h>
            int a;
            void main (void)
            {
                        printf ("Unesi broj");
                        scanf ("%d",&a);
                        if (a>0)
                                   printf("\nPrethodnik je %d",a-1);
                        if (a<0)
                                   printf("\nSljedbenik je %d",a+1);
            }

Primjer 2: Napiši program kojim će se unjeti tri realna broja te ispisati najmanji.
            # include <stdio.h>
            void main(void)
            {  
float a,b,c,min;
            printf("Unesi brojeve");
            scanf("%f %f %f", &a,&b,&c);
            min=a;
            if (b<min)
                        min=b;
            if (c<min)
                        min=c;
            printf ("\n Najmanji je %f",min);
  }


Višestruki izbor pomoću if ....else

Ovaj oblik izbora ima slijedeći oblik:
if (uvjetni izraz)
izjava ili grupa izjava;
else
alternativna izjava ili grupa izjava;
Izjave if...else je moguće ugrađivati jednu u drugu koliko puta želimo.

Primjer 1: Unijeti dva broja. Ako je prvi veći od drugog ispisati njihov zbroj, a ako nije (prvi veći od drugog) ispisati njihov umnožak.

            # include <iostream.h>
            void main(void)
            {
int a,b;
            cout<<"Unesite brojeve";
            cin>>a>>b>>c;
            if (a>b)
                        cout>>"\nZbroj je">>a+b;
            else
                        cout >>"\nUmnožak je ">>a*b;
  }
Testiranje višestrukih izbora: switch

Dugačka serija if i else izjava je zamorna za pisanje i omogućava lakše pravljanje grešaka. U slijedećem primjeru prikazan je izbor jedne opcije iz menija. Kod praktičnog pisanja, često je potrebno na taj način odrediti akciju programa. Opća forma naredbe switch je:

switch (vrijednost)
{
case vrijednost: izjava ili grupa izjava
.......
default: izjava ili grupa izjava
}

Varijabla vrijednost se na početku uspoređuje sa vrijednošću prve case izjave. Ukoliko su iste, izvršava se program iza dvotočke do kraja switch izjave ili dok se ne dođe do specijalne izjave break. Ukoliko vrijednost nije ista sa prvom case izjavom, testira se vrijednost slijedeće case izjave i tako do poslijednje case izjave.
Ukoliko niti jedna vrijednost nije ista kao vrijednost switch izjave, izvršava se program iza default izjave. Izjava default je opcionalna, te ukoliko se ne napiše, u slučaju da niti jedna vrijednost nije zadovoljena, ne izvršava se ni jedna izjava unutar switch izjave.
Unutar naredbe switch, na kraju case može se nalaziti naredba break koja je vrlo važna. Ona uvjetuje skok na kraj switch izjave. Ukoliko postoji, program se nastavlja izvršavati do kraja switch naredbe ili do izjave break.

Primjer:  Unesi dva broja. Napravi izbornik u kojem će se moći izabrati slijedeće operacija: zbrajanje, oduzimanje množenje i dijeljenje.

# include <stdio.h>
float a,b,c,d,e,f,g,h;
int i;
void main (void)
{
            printf ("Unesi brojeve");
            scanf ("%f %f", &a,&b);
            printf("\n1- zbrajanje");
            printf("\n2-  oduzimanje");
            printf("\n3-množenje");
            printf("\n4-dijeljenje);
            printf("\nVaš izbor:");
            scanf("%i", &i);
            switch(i)
{
                        case 1:
printf("\n Zbroj je %f",a+b);
break;
            case 2:
printf ("\n Razlika je %f",a-b);
break;
            case 3:
printf ("\nUmnožak je %f",a*b);
break;
            case 4:
                        if (b=0)
                                   printf("\nNije moguće dijeliti s nulom");
                        else
                                   printf ("\nKvocjent je %f",a/b);
            break;
default:
printf(\n Morate odabrati 1,2,3 ili 4");
break;
}
}