Problem z pętlą DoWhile
Ostatnio zmodyfikowano 2012-04-19 17:40
Temes Temat założony przez niniejszego użytkownika |
Problem z pętlą DoWhile » 2012-04-19 16:57:02 Męczę się z tym od dłuższego czasu i nie mogę zrozumieć jak to zrobić... Mam pętle tak? int Niewiadoma; do { std::cin >> Niewiadoma; std::cout << "Niepoprawnie"; } while(...);
std::cout << "Poprawnie"; Mam problem tam gdzie są te kropeczki czyli w While. Gdy napiszę to: }while( Niewiadoma != 1 ); Działa. Gdy napiszę to: }while( Niewiadoma == 1 ); Nie działa. Gdy napiszę to: }while( Niewiadoma != 1 || Niewiadoma !=2 ); Nie działa. Itd. - o co chodzi? Bo wiem że != jest to "różne od" albo negacja. A == oznacza równe, czyli jeżeli w while Niewiadoma == 1 powinno działać, a tak nie jest. "O co kaman"... |
|
xevuel |
» 2012-04-19 16:59:30 Musisz nauczyć się "czytać" kod. W tym wypadku będzie to: "Wykonuj podane czynności, dopóki Niewiadoma będzie różna od 1". Czyli dopóki user nie poda 1, pętla będzie się wykonywać. Rozumiesz?
Kod daj w [cpp]...[/cpp] |
|
Temes Temat założony przez niniejszego użytkownika |
» 2012-04-19 17:10:34 Wg. jest to dziwne, z tego wynika że coś róznego od 1 to jest 1... Próbowałem kilka razy i zadziałało tak: } while( Niewiadoma == 1 && Niewiadoma == 2 ); Gdybym miał dosłownie tłumaczyć kod, to powiedziałbym tak: Wykonuj to dopóki Niewiadoma będzie równa 1 i równa 2... A wystarczy 1... Z "||" nie działa... Nadal jakoś nie rozumiem, ale dzięki za pomoc :3 |
|
xevuel |
» 2012-04-19 17:40:20 Jak Niewiadoma może być jednocześnie równa 1 i 2? Równie dobrze możesz tam wpisać true . Jeśli zamienisz && na ||, to wystarczy podać 3, i program wyjdzie z pętli. Pomyśl, czy program wyjdzie z pętli na tych danych, czy nie... wykonuj, dopóki liczba jest różna od 5 : 3 . Wynik? wykonuj, dopóki liczba jest różna od 5 : 5 . Wynik? wykonuj, dopóki liczba jest równa 3 : 3 . Wynik? wykonuj, dopóki liczba jest równa 3 : 2 . Wynik? |
|
« 1 » |