Pętla do while
Ostatnio zmodyfikowano 2015-05-20 21:43
damian955 Temat założony przez niniejszego użytkownika |
Pętla do while » 2015-05-20 20:54:12 Mam problem z pętlą. Otóż zapętla się tylko raz po czym program się zamyka. To nie pozwala mi kontynuować pisania programu oraz samej nauki języka C++. Proszę o jak najszybszą pomoc. Dzięki z góry. Poniżej zamieszczam feralny kod: #include <cstdio> #include <iostream> using namespace std; int main() { printf( "Witaj w kalkulatorze!\n\nW tym kalkulatorze masz mozliwosc dzialania na dwoch liczbach zmiennoprzecinkowych lub w przypadku obliczania reszty z dzielenia beda to liczby calkowite.\n\n" ); float a, b; int A, B, C; cout << "Wybierz rodzaj dzialania do wykonania poprzez wpisanie odpowiedniej cyfry:\n" << endl << "Suma = 1" << endl << "Roznica = 2" << endl << "Iloczyn = 3" << endl << "Iloraz = 4" << endl << "Reszta z dzielenia = 5" << endl << "Wyjscie z programu = 6\n"; printf( "\nPodana cyfra: " ); cin >> C; bool Csukces = cin.good(); cin.clear(); cin.sync(); if( Csukces != 1 ) { do { cout << "Wybierz rodzaj dzialania do wykonania poprzez wpisanie odpowiedniej cyfry:\n" << endl << "Suma = 1" << endl << "Roznica = 2" << endl << "Iloczyn = 3" << endl << "Iloraz = 4" << endl << "Reszta z dzielenia = 5" << endl << "Wyjscie z programu = 6\n"; printf( "\nPodana cyfra: " ); cin >> C; bool Csukces = cin.good(); cin.clear(); cin.sync(); } while( Csukces == 1 ); } |
|
pekfos |
» 2015-05-20 21:35:19 Pętla do zapewnia co najmniej jedno wykonanie podlegającego jej kodu, więc niepotrzebnie napisałeś 2 razy to samo. Pętla 'nie działa', bo w warunku if jest Csukces != 1, więc warunek pętli Csukces == 1 nigdy nie będzie prawdziwy, bo jest znaczeniowo przeciwny. Csukces wewnątrz pętli to zupełnie inna zmienna, która przestaje istnieć przed sprawdzeniem warunku pętli. |
|
damian955 Temat założony przez niniejszego użytkownika |
» 2015-05-20 21:43:29 To kiepsko, w jaki sposób mam powiedzieć programowi, aby w razie napotkanych problemów w tym przypadku napisanie znaku zamiast cyfry powtórzył to co mu kazałem? A tak btw. kiedy zamieniam przy while == na != to pętla trwa w nieskończoność. Tego też nie rozumiem.
Dobra nie ważne sam sobie poradzę, po pierwsze program już się zje*** więc dlatego pętla wyskakuje, a później przestaje wszystko działać. Zamykam do kosza z tym. Najdziwniejsze jest w tym wszystkim to, że rok temu umiałem pętlę tylko coś też popsułem i przestałem ją rozumieć, a teraz postanowiłem powrócić do poradnika właśnie dla pisania gier! Ha ha taka anegdotka. |
|
« 1 » |