Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Pętla do...while

Ostatnio zmodyfikowano 2017-05-05 15:18
Autor Wiadomość
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 :)
C/C++
{
    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();
}
P-160702
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.
P-160703
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ę).
P-160704
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?
P-160720
« 1 »
  Strona 1 z 1