Pętla do...while
Ostatnio zmodyfikowano 2017-05-05 15:18
adrian.paz Temat założony przez niniejszego użytkownika  | 
Pętla do...while » 2017-05-04 17:41:27 Witam mam problem z petlą w kalkulatorze. Po wybraniu opcji 'powrót do głównego menu' pętla powtarza się bez końca i znów prosi o podanie liczb x i y.. Próbowałem już na różne sposoby umieścić tą opcję nr '5' ale nic nie działa :( Jeżeli problem leży głębiej i mam podać kod całego programu gdzie są jeszcze inne funkcje proszę napisać :) Nie podawałem ponieważ jest bardzo długi :) {     float x, y;     char wybor;     do     {         system( "cls" );         cout << "Wybierz pierwsza liczbe: ";         cin >> x;         cout << "Wybierz druga liczbe: ";         cin >> y;         system( "cls" );         cout << "****MENU KALKULATORA****" << endl;         cout << "******************************" << endl;         cout << "[1] Dodawanie" << endl;         cout << "[2) Odejmowanie" << endl;         cout << "[3] Mnozenie" << endl;         cout << "[4] Dzielenie" << endl;         cout << "[5] Powrot do glownego menu" << endl;         cout << "[6] Wyjscie" << endl;         wybor = getch();         switch( wybor )                  {         case '1': cout << "Suma = " << x + y;             getchar(); getchar();             system( "cls" );             break;         case '2': cout << "Roznica = " << x - y;             getchar(); getchar();             system( "cls" );             break;         case '3': cout << "Iloczyn = " << x * y;             getchar(); getchar();             system( "cls" );             break;         case '4': if( y == 0 ) cout << "Nie dzielimy przez zero!" << "\a" << endl;             else cout << "Iloraz = " << x / y;                          getchar(); getchar();             system( "cls" );             break;         case '6':             exit( 0 );             break;             default:             cout << "Nie znaleziono takiej opcji" << "\a" << endl;         } }     while( wybor != 5 );          moja_funkcja(); }  | 
 | 
pimpek  | 
» 2017-05-04 19:12:05 W pętli while(wybor!= '5') MUSISZ 5 wziąć w '' , bo wybor=getch(); pobiera kod ASCII klawisza(w tym wypadku 5).  KOD ASCII 5 w systemie dziesietnym to 53.  Więc twoja pętla powina wygladac tak:  while(wybor!='5');  lub while(wybor!=53);  wtedy pętla się zakończy. 
 
  Ewentualnie możesz wykorzystać Case '5':  instrukcja powrotu do menu  i tyle ( np goto) .  Pozdro.  | 
 | 
karambaHZP  | 
» 2017-05-04 19:45:58 | Case '5':  instrukcja powrotu do menu  i tyle ( np goto) .  |  
 goto  to zła praktyka (nie uczyć się).  | 
 | 
adrian.paz Temat założony przez niniejszego użytkownika  | 
Petla do...while » 2017-05-05 15:18:14 Udało się :) Pętla już działa :D Tylko nie wiem czemu nie działa opcja while(wybor!='5') tylko działa akurat while(wybor!=53) Ktoś wie czemu?  | 
 | 
|  « 1 »  |