Zapętlenie dopóki tego nie przerwę
Ostatnio zmodyfikowano 2017-12-01 16:46
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 :( #include <iostream> using namespace std;
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; }
|
|
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? |
|
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.. :/ |
|
pekfos |
» 2017-12-01 16:07:53 Pokaż jak to zrobiłeś. Wersja z dodatkowym while. |
|
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; 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 |
|
« 1 » |