Petla do... while warunek konczacy
Ostatnio zmodyfikowano 2015-08-23 13:32
Demoncros Temat założony przez niniejszego użytkownika |
Petla do... while warunek konczacy » 2015-08-23 12:15:42 Czemu warunkiem konczacym jest while( liczba != 123 ); a nie while( liczba = 123 ); w przykladowym kodzie #include <iostream> int main() { int liczba; do { std::cout << "Podaj liczbe 123 aby zakonczyc petle" << std::endl; std::cin >> liczba; std::cout << "Podales liczbe " << liczba << std::endl; } while( liczba != 123 ); std::cout << "Koniec" << std::endl; return 0; }
pytam dlatego bo w moim rozumowaniu != oznacza rozne od, wiec czemu program po podaniu 123 zakancza pentle? |
|
JMII89 |
» 2015-08-23 12:21:50 Bo warunkiem pętli jest powtarzanie pętli DOPÓKI liczba nie jest równa 123 . Więc jeśli ktoś wpiszę 123 to warunek jest fałszywy dlatego program wychodzi z pętli.Czy to nie jest oczywiste ? http://cpp0x.pl/kursy/Kurs-C++/Poziom-2/Petla-do-while/18 |
|
pekfos |
» 2015-08-23 12:58:58 Ten warunek jest zawsze prawdziwy. To przypisanie, a nie porównanie. |
|
mateczek |
Tak to działa » 2015-08-23 13:32:12 while( 1 ) { if( 1 ) break; if( liczba == 123 ) break; } while( true ) { if( liczba == 123 ) break; }
while( liczba = 123 );
Na przypisania w stylu if( x = func() ) Trzeba uważać. Bo kompilator najpierw ustawia wartość x na wartość zwróconą przez funkcję. I jeśli ta wartość jest różna od 0 to traktuje ją jako "true" a jeśli wartość zwróconą przez funkcję jest 0 wówczas kompilator traktuje jak "false". (Często więc znak równa "=" w zapisie zamiast operatora "==" jest błędem) |
|
« 1 » |