[C++] Błędne działanie programu przy użyciu switch...case
Ostatnio zmodyfikowano 2012-12-26 21:27
solmat95 Temat założony przez niniejszego użytkownika |
[C++] Błędne działanie programu przy użyciu switch...case » 2012-12-26 20:33:43 Witam Mam taki problem napisałem kalkulator z dokładnością kilku miejsc po przecinku o to kod: #include <iostream> #include <cstdlib>
using namespace std;
int main() { cout.setf( ios_base::fixed, ios_base::floatfield ); double a, b; int wybor; cout << "DOKLADNY KALKULATOR" << endl; cout << "1. Dodawanie: " << endl; cout << "2. Odejmowanie: " << endl; cout << "3. Mno¿enie: " << endl; cout << "4. Dzielenie: " << endl; cout << "Wpisz numer: "; cin >> wybor; cout << endl << "Wpisz numer: " << wybor << endl; switch( wybor ) { case 1: cout << "Podaj pierwsz¹ liczbe: "; cin >> a; cout << "Podaj druga liczbe: "; cin >> b; cout << "Wynik to: " << a + b << endl; case 2: cout << "Podaj pierwsza liczbe: "; cin >> a; cout << "Podaj druga liczbe: "; cin >> b; cout << "Wynik to: " << a - b << endl; case 3: cout << "Podaj pierwsza liczbe: "; cin >> a; cout << "Podaj druga liczbe: "; cin >> b; cout << "Wynik to: " << a * b << endl; case 4: cout << "Podaj pierwsza liczbe: "; cin >> a; cout << "Podaj druga liczbe: "; cin >> b; cout << "Wynik to: " << a / b << endl; } system( "pause" ); return 0; }
tylko, że jak np zrobi dodawanie to przechodzi od razu potem do odejmowania i jak skończy się na dzieleniu to dopiero się zamyka nie wiem czemu a ja chce żeby się zamknął od razu po pierwszym działaniu tylko pokazał wynik. |
|
Trotom |
» 2012-12-26 20:35:18 Na końcu każdego case'a dopisz break; |
|
solmat95 Temat założony przez niniejszego użytkownika |
» 2012-12-26 20:45:34 tylko czemu w takim kalkulatorze musi być na końceu break: #include <iostream> #include <cstdlib>
using namespace std;
int main() { cout.setf( ios_base::fixed, ios_base::floatfield ); float a, b; int wybor; cout << "DOKLADNY KALKULATOR" << endl; cout << "1. Dodawanie: " << endl; cout << "2. Odejmowanie: " << endl; cout << "3. Mno¿enie: " << endl; cout << "4. Dzielenie: " << endl; cout << "Wpisz numer: "; cin >> wybor; cout << endl << "Wpisz numer: " << wybor << endl; switch( wybor ) { case 1: cout << "Podaj pierwsz¹ liczbe: "; cin >> a; cout << "Podaj druga liczbe: "; cin >> b; cout << "Wynik to: " << a + b << endl; case 2: cout << "Podaj pierwsza liczbe: "; cin >> a; cout << "Podaj druga liczbe: "; cin >> b; cout << "Wynik to: " << a - b << endl; case 3: cout << "Podaj pierwsza liczbe: "; cin >> a; cout << "Podaj druga liczbe: "; cin >> b; cout << "Wynik to: " << a * b << endl; case 4: cout << "Podaj pierwsza liczbe: "; cin >> a; cout << "Podaj druga liczbe: "; cin >> b; cout << "Wynik to: " << a / b << endl; } system( "pause" ); return 0; }
a na takim nie musi być: #include <iostream> #include <cstdlib>
using namespace std; int main() { cout.setf( ios_base::fixed, ios_base::floatfield ); double a, b; cout << "Podaj pierwsza liczbe: "; cin >> a; cout << "Podaj druga liczbe: "; cin >> b; cout << "wynik to: " << a + b << endl; return 0; }
dlatego że jest tylko 1 opcja do wyboru ? to tu breaka nie musi być ? |
|
ison |
» 2012-12-26 20:59:18 break odnosi się do case, w drugim przypadku go nie masz |
|
solmat95 Temat założony przez niniejszego użytkownika |
» 2012-12-26 21:27:35 dzięki wielki za tą informację zaspokoiła mnie że tak powiem :D |
|
« 1 » |