Wpis z mikrobloga

#programowanie #naukaprogramowania

Ktoś mi wyjaśni jak leci tutaj hierarchia? Kod działa poprawnie. Nie mogę pojąć zamieszania wprowadzonego przez else if. Czyli program sprawdza 1. warunek i jeśli się okaże że wiek <18 lat to nie robi nic wiecej. Jesli pierwszy IF da zły wynik to się instrukcja ELSE która na dzień dobry ma ustawionego IF nr 2 którego negatywny wynik wymusza wykonanie instrukcji w ostatnim ELSE?

cout << "Ile masz lat" << endl;**
cin >> wiek;

if(wiek<18)
{
cout<<"jestes niepelnoletni"; // wynik na dziendobry
}
else if ((wiek>=18) && (wiek<35)) // dopiero teraz sprawdza drugi warunek
{
cout<<"jestes pelnoletni ale nie mozesz byc prezydentem";
}
else
{
cout << "jestes pelnoletni i mozesz byc prezydentem";
}

return 0;
}
  • 6
@sspiderr: Ja tam w C++ nie programuje, ale działa to tak że najpierw idzie IF, jeżeli jest niepoprawny, to potem leci wszystkie ELSE IF i jeżeli wszystko okaże się nieprawdą to robi ELSE.
@sspiderr: możesz to sobie zobrazować tak:

if(wiek<18) //sprawdza warunek1
{
cout<<"jestes niepelnoletni";
}
else{ //jezeli warunek 1 nie zostanie spelniony to:
if ((wiek>=18) && (wiek<35)) //sprawdza drugi warunek
{
cout<<"jestes pelnoletni ale nie mozesz byc prezydentem";
}
else //jezeli drugi warunek nie zostanie spelniony to:
{
cout << "jestes pelnoletni i mozesz byc prezydentem";
}
} // zamkniecie elsa z warunku 1

to jest to samo.