Lekcja 13 - Instrukcja warunkowa if .. else
Ostatnio zmodyfikowano 2014-09-12 13:19
fluks147 Temat założony przez niniejszego użytkownika |
Lekcja 13 - Instrukcja warunkowa if .. else » 2014-09-12 09:37:40 Wydaje się że wszystko jest ok, ale przy pracy domowej nie rozumiem pewnej rzeczy. Otóż jest taki program:
#include <iostream> int main() { int wiek; std::cin >> wiek;
if( wiek << 18 ) std::cout << "Nie jestes pelnoletni" << std::endl; else std::cout << "Jestes pelnoletni" << std::endl;
std::cout << "Koniec" << std::endl; return 0; }
Powinien on działać, ale niestety jakąkolwiek liczbę podaję, czy to 12, czy 58, program wyświetla mi "Nie jestes pelnoletni". Dlaczego tak jest?
Z kolei jeśli
if( wiek << 18 )
zamienię na
if( wiek <= 17 )
to program działa poprawnie. O co chodzi? |
|
Mateus. |
» 2014-09-12 09:43:24 Powinno być if( wiek < 18 ) lub tak jak napisałeś, że działa. |
|
fluks147 Temat założony przez niniejszego użytkownika |
» 2014-09-12 09:44:47 Nie wiem dlaczego ale byłem w 100% pewny że przy porównaniach trzeba pisać nie podwójne znaki mniejszości a nie pojedyncze. No cóż, teraz już wiem, dzięki :)
|
|
pekfos |
» 2014-09-12 13:19:33 Podwójny znak mniejszości to operator przesunięcia bitowego. Stwierdzi, że jesteś pełnoletni dopiero przy 262144 latach ;) |
|
« 1 » |