Dvostruko uvjetno grananje omogućava da se ovisno o ispunjenju postavljenog uvjeta izvodi jedan od dva neovisna bloka naredbi.
-
Ako je vrijednost uvjeta logička istina (true, 1), izvodi se prvi blok naredbi. Nakon njegova završetka izvođenje se nastavlja od prve naredbe iza drugog bloka.
-
Ako je vrijednost uvjeta logička neistina (false, 0), preskače se prvi blok i izvodi se drugi blok (iza naredbe else). Nakon njegova završetka izvođenje se nastavlja od prve naredbe iza drugog bloka.

|
Zadatak:
|
Treba unijeti realni broj pa provjeriti da li je taj broj veći od ili jednak 0 (>=0). Ako jest, računa se kvadratni korijen tog broja, a ako nije ispisuje se odgovarajuća poruka.
Ispis neka bude oblika:
Upisi realni broj:
Kvadratni korijen od ... je ....
ili
Greska. Broj je manji od 0.
|
U zadatku je pokazana primjena matematičke funkcije za računanje kvadratnog korijena.
Rješenje:
|
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
float broj,rez;
cout<<"Upisi broj:";
cin>>broj;
if (broj>=0)
{
rez=sqrt(broj);
cout<<"Kvadratni korijen od "<<broj<<" je "<<rez<<endl;
}
else
{
cout<<"Greska. Broj je manji od 0"<<endl;
}
return 0;
}
|
Provjera za unos vrijednosti 81.5:
|
Upisi broj: 81.5
Kvadratni korijen od 81.5 je 9.02773.
|
|
Uvjetni operator
Jednostavni oblici naredbe if-else mogu se zamijeniti uvjetnim operatorom koji se zapisuje znakom upitnik ( ?).
|
Opći oblik naredbe if-else zapisan uvjetnim operatorom |
|
(uvjet) ? (naredba 1) : (naredba 2) |
Ovakav način zapisa rabi se kod postavljanja jednostavnih uvjeta, kada naredba stane u jedan redak.
|
Grananje zapisano naredbom if-else |
Grananje zapisano uvjetnim operatorom ? |
|
if (a<0)
cout<<-a;
else
cout<<a;
|
(a<0)?(cout<<-a):(cout<<a);
|
|
|