grzeso Temat założony przez niniejszego użytkownika |
lekcja 20, warunek if » 2014-06-20 23:10:26 Kod z lekcji 20: #include <iostream>
bool czyGodzinaPoprawna( int godz, int min, int sek ) { if( godz < 0 || godz > 23 ) return false; if( min < 0 || min > 59 ) return false; if( sek < 0 || sek > 59 ) return false; return true; }
void komunikatCzasu( bool bWynik ) { if( bWynik ) std::cout << "Czas jest poprawny" << std::endl; else std::cout << "Czas jest niepoprawny" << std::endl; }
int main() { komunikatCzasu( czyGodzinaPoprawna( 24, 30, 50 ) ); komunikatCzasu( czyGodzinaPoprawna( 12, 88, 50 ) ); komunikatCzasu( czyGodzinaPoprawna( 1, 00, 99 ) ); komunikatCzasu( czyGodzinaPoprawna( 7, 33, 01 ) ); return 0; } Mój problem: czemu w funkcji void komunikatCzasu( bool bWynik ) { if( bWynik ) std::cout << "Czas jest poprawny" << std::endl; else std::cout << "Czas jest niepoprawny" << std::endl; } przy if nie ma warunku? wszystko działa ok ale wczytując bWynik wczytuje true lub false . Nie ma tam warunku typu: Jeżeli bWynik=true to zrób to, a i tak działa |
|
pekfos |
» 2014-06-20 23:18:15 Jest. Nie ma tam warunku typu: Jeżeli bWynik=true to zrób to, a i tak działa |
Bo nie jest potrzebny. to to samo co A jak się uprzesz, to nawet to samo co if((( X == true ) == true ) == true )
Warunki dają wynik typu bool, więc jak już masz taką wartość, to po co rozpisywać coś, co i tak się stanie..? |
|
grzeso Temat założony przez niniejszego użytkownika |
» 2014-06-20 23:21:03 To tego o if nie wiedziałem. Dzieki |
|
pekfos |
» 2014-06-20 23:24:29 Taka rada: nie wpadaj w "tu musi być to". W if nie musi być wpisane żadne porównanie, a i porównania nie muszą być w instrukcjach warunkowych. bool warunek =( zmienna == 5 ); if( warunek ) std::cout << "zmienna jest rowna 5"; |
|
grzeso Temat założony przez niniejszego użytkownika |
» 2014-06-20 23:46:50 Czyli generalnie jak nie wpisze nic oprócz zmiennej to if( zmienna ) uzna ze to co w nawiasie ma być równe true żeby warunek zadziałał? czyli mogę zrobić np tak: int JakasFunkcja; if( JakasFunkcja );
std::cout << "cos sie dzieje";
i teraz z JakasFunkcja coś wyjdzie i wynik musi być "true" żeby if zadziałał i wyświetlił "cos sie dzieje"? a jak wyjdzie cokolwiek innego to nie zadziała |
|
pekfos |
» 2014-06-21 00:39:32 Wartość podana tak w if, po rzutowaniu na bool, musi mieć wartość true, by kod warunkowy zadziałał. W przypadku int, dowolna niezerowa wartość, rzutowana na bool, daje true. |
|
grzeso Temat założony przez niniejszego użytkownika |
» 2014-06-21 13:46:56 ok, dzięki za pomoc |
|
« 1 » |