Problem z pętlą do while
Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Zarejestruj się!

Problem z pętlą do while

AutorWiadomość
Temat założony przez niniejszego użytkownika
Problem z pętlą do while
» 2014-05-04 18:02:41
Witam.
Wklejam zadanie które zrobiłem z rozdziału 15 (Pętla do ... while), ponieważ mam problem z pętlą która jest w default'cie. Wydaję mi się że problem tkwi w jej warunki bo pętla się wykonuje tylko raz i po ponownym wprowadzenie zły wartość pętla się przerywa. I przy okazji chciałbym jeszcze zapytać czy poprawnie wykonałem zadanie?


C/C++
#include <iostream>

using namespace std;

int wynik = 0, liczba, dzialanie;
bool czyblad, poprawne;

int main()
{
    cout << "Kalkulator" << endl << endl;
    cout << "Pierwotny wynik = " << wynik << endl << endl;
    do
    {
        do
        {
            cin.clear();
            cin.sync();
            cout << "Podaj liczbe: "; cin >> liczba;
            czyblad = cin.fail();
        } while( czyblad == true );
       
        if( liczba != 0 )
        {
            cout << endl << "Dzialanie:" << endl;
            cout << "----------" << endl;
            cout << "[1] Dodawanie" << endl;
            cout << "[2] Odejmowanie" << endl;
            cout << "[3] Mnozenie" << endl;
            cout << "[4] Dzielenie" << endl;
            cout << "[5] Rezygnuj" << endl << endl;
           
            do
            {
                cin.clear();
                cin.sync();
                cout << "Podaj dzialanie: "; cin >> dzialanie;
                czyblad = cin.fail();
            } while( czyblad == true );
           
            switch( dzialanie )
            {
            case 1:
                {
                    wynik = wynik + liczba;
                    break;
                }
            case 2:
                {
                    wynik = wynik - liczba;
                    break;
                }
            case 3:
                {
                    wynik = wynik * liczba;
                    break;
                }
            case 4:
                {
                    wynik = wynik / liczba;
                    break;
                }
            case 5:
                {
                    liczba = 0;
                    break;
                }
                default:
                {
                    cout << endl << "Nie prawidlowe dzialanie!" << endl;
                    do
                    {
                        cin.clear();
                        cin.sync();
                        cout << "Podaj ponownie dzialanie: "; cin >> dzialanie;
                        czyblad = cin.fail();
                       
                        if(( dzialanie == 1 ) ||( dzialanie == 2 ) ||( dzialanie == 3 ) ||( dzialanie == 4 ) ||( dzialanie == 5 ) )
                        {
                            poprawne = true;
                        }
                        else
                        {
                            poprawne = false;
                        }
                       
                    } while(( czyblad == true ) &&( poprawne == false ) );
                   
                    break;
                }
            }
        }
        cout << endl << "Wynik = " << wynik << endl << endl;
       
    } while( liczba != 0 );
   
    return 0;
}
P-109292
» 2014-05-04 18:09:16
C/C++
while(( czyblad == true ) &&( poprawne == false ) );

||

I przy okazji chciałbym jeszcze zapytać czy poprawnie wykonałem zadanie?
A działa poprawnie? Zgodne z treścią? (Pytania retoryczne. Zamiast odpowiadać, zapoznaj się z zasadami zakładania tematów na forum)
P-109294
« 1 »
 Strona 1 z 1