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

[C++] Błędne działanie programu przy użyciu switch...case

Ostatnio zmodyfikowano 2012-12-26 21:27
Autor Wiadomość
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:
C/C++
#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.
P-72032
Trotom
» 2012-12-26 20:35:18
Na końcu każdego case'a dopisz break;
P-72033
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:
C/C++
#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ć:
C/C++
#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ć ?
P-72035
ison
» 2012-12-26 20:59:18
break odnosi się do case, w drugim przypadku go nie masz
P-72038
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
P-72040
« 1 »
  Strona 1 z 1