Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Lekcja 13 - Instrukcja warunkowa if .. else

Ostatnio zmodyfikowano 2014-09-12 13:19
Autor Wiadomość
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?
P-116911
Mateus.
» 2014-09-12 09:43:24
Powinno być
if( wiek < 18 )
 lub tak jak napisałeś, że działa.
P-116912
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 :)
P-116913
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 ;)
P-116918
« 1 »
  Strona 1 z 1