Uslovni korak: Primer 2

Primer: Za uneti broj ispitati da li je veći od 17 i da li je deljiv sa 3. Ako jeste, ispisati da odgovara, a ako nije da ne odgovara.

#include <iostream>
using namespace std;

main()
{
    int x;
    cout<<"Unesi broj\n"; 
    cin>>x;  
    if(x>17)
    {
       if(x%3==0)
       {
          cout<<"Broj odgovara"<<endl;
       }
    }
    else
    {
       cout<<"Broj ne odgovara"<<endl;
    }
}

Ovaj zadatak smo rešili tako što smo ugnezdili jedan if u drugi. Ukoliko broj nije veći od 17, program će ući u else granu. Ukoliko je broj veći od 17, program će ući u unutrašnju if granu.
Ovo rešenje nije dobro iz razloga što se poruka „Broj ne odgovara“ neće ispisati u slučaju kada je broj veći od 17 a nije deljiv sa 3.
Program će ući u else granu samo ukoliko broj nije veći od 17. Ukoliko je broj veći od 17, program ulazi u unutrašnji if i ispituje deljivost sa brojem 3. Ukoliko broj nije deljiv sa 3 nikakva poruka se neće ispisati!
Da bi popravili naš kod, potrebno je ubaciti još jedan else ispod unutrašnjeg if-a.
Na sledećem primeru ćemo to rešiti malo drugačije upotrebom operatora i (&&).
Isti zadatak rešen sa jednim if-om:

#include <iostream>
using namespace std;

main()
{
    int x;
    cout<<"Unesi broj\n"; 
    cin>>x;  
    if(x>17 && x%3==0)
    {
       cout<<"Broj odgovara"<<endl;
    }
    else
    {
       cout<<"Broj ne odgovara"<<endl;
    }
}
Ako tvrđenje koje ispitujemo čine dva tvrđenja vezana operatorom &&, tvrđenje koje ispitujemo je tačno samo ako su tačna oba tvrđenja koja ga čine.
[catlist categorypage="yes" numberposts=-1 customfield_orderby=redosled order=asc]