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

Zapętlenie dopóki tego nie przerwę

Ostatnio zmodyfikowano 2017-12-01 16:46
Autor Wiadomość
TaRaNTuLaH
Temat założony przez niniejszego użytkownika
Zapętlenie dopóki tego nie przerwę
» 2017-12-01 15:13:13
Cześć !
Mam problem ;) Chciałbym zrobić program (prosty kalkulator, który najpierw sprawdza czy wpisałeś poprawną wartość w zakresie od 1-5, w przeciwnym wypadku prosi o wpisanie ponownie liczby aż nie zostanie wprowadzona poprawna wartość).
Problem polega na tym, że chcę również aby po wykonaniu obliczenia kalkulator dawał nam możliwość powrócenia na początek za pomocą zmiennej cont
Przykład: Wybieram 40, zapętla się aż nie wybiorę od 1 do 5 potem wybieram Y/y i znowu menu zapętla się aż nie wybiorę od 1 do 5

Nie za bardzo wiem w którym miejscu wstawić kolejnego do while :/ Cały czas dostaję nieskończone pętle przy samodzielnych próbach :(


C/C++
#include <iostream>
using namespace std;

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main( int argc, char ** argv ) {
    float a = 0, b = 0, add = 0, sub = 0, multi = 0, div = 0;
    char cont;
    int menu = 0;
    do {
        cout << "Hello user ! I am simple calculator, please choose an action.\n1.Addition\n2.Substraction\n3.Multiplication\n4.Division\n5.Exit\n";
        cin >> menu;
        switch( menu ) {
        case 1:
            cout << "You have chosen addition, please enter first value: ";
            cin >> a;
            cout << "\nPlease enter second value: ";
            cin >> b;
            add = a + b;
            cout << "\nSum of your value is : " << add;
            cout << endl << "Do you want to continue? If so, type Y/y, otherwise type any other letter to break" << endl;
            cin >> cont;
            system( "CLS" );
            break;
        case 2:
            cout << "You have chosen substraction, please enter first value: ";
            cin >> a;
            cout << "\nPlease enter second value: ";
            cin >> b;
            sub = a - b;
            cout << "\nSubstraction of your value is: " << sub;
            cout << endl << "Do you want to continue? If so, type Y/y, otherwise type any other letter to break" << endl;
            cin >> cont;
            system( "CLS" );
            break;
        case 3:
            cout << "You have chosen multiplication, please enter first value: ";
            cin >> a;
            cout << "\nPlease enter second value: ";
            cin >> b;
            multi = a * b;
            cout << "\nMultiplication of your value is: " << multi;
            cout << endl << "Do you want to continue? If so, type Y/y, otherwise type any other letter to break" << endl;
            cin >> cont;
            system( "CLS" );
            break;
        case 4:
            cout << "You have chosen division, please enter first value: ";
            cin >> a;
            cout << "\nPlease enter second value: ";
            cin >> b;
            if( b == 0 ) {
                cout << "You can't divide by 0!";
                cout << endl << "Do you want to continue? If so, type Y/y, otherwise type any other letter to break" << endl;
                cin >> cont;
                system( "CLS" );
                break;
            }
            else
                 div = a / b;
           
            cout << "\nDivision of your value is: " << div;
            cout << endl << "Do you want to continue? If so, type Y/y, otherwise type any other letter to break" << endl;
            cin >> cont;
            system( "CLS" );
            break;
        case 5:
            cout << "Thanks for using this calculator! See you again!";
            return 0;
        }
       
    }
    while( cont == 'Y' || cont == 'y' );
   
    cout << "Thanks for using this calculator! See you again!";
    return 0;
}
P-167434
pekfos
» 2017-12-01 15:51:21
który najpierw sprawdza czy wpisałeś poprawną wartość w zakresie od 1-5, w przeciwnym wypadku prosi o wpisanie ponownie liczby aż nie zostanie wprowadzona poprawna wartość
I w czym problem?
P-167436
TaRaNTuLaH
Temat założony przez niniejszego użytkownika
» 2017-12-01 15:55:59
jak robię to za pomocą if'a lub kolejnego do while'a to jak wpiszę np 40 wyskakuje znów menu, potem wpiszę 4 to znowu wyskakuje menu, zamiast przejsc do kolejnego kroku (dzielenia). I nie za bardzo wiem dlaczego :/ Nie wiem ktorym to konkretnie miejscu wstawic zeby dzialalo tak jak tego chce.. :/
P-167437
pekfos
» 2017-12-01 16:07:53
Pokaż jak to zrobiłeś. Wersja z dodatkowym while.
P-167438
TaRaNTuLaH
Temat założony przez niniejszego użytkownika
» 2017-12-01 16:46:02
Okej już działa.. >_< Dopiero po tym co napisałeś zauważyłem błąd..
while wygląda tak: (Dodany po
cin >> menu;
C/C++
while( menu < 1 || menu > 5 ) {
    cout << "Wrong choice! Please enter option again!\n";
    cin >> menu;
}

a błędem było && zamiast ||...
Dziękuję za pomoc :D
P-167439
« 1 »
  Strona 1 z 1