Case mit ODER



  • Hallo,

    ich habe folgendes Programm:

    #include <iostream>
    using namespace std;
    void main()
    {
    int zahl;
    cout << "Bitte Zahl eingeben [1-4] :\n ";
    cin >> zahl;
    switch (zahl)
    {
    case 1 : cout << "ungerade" << endl; break;
    case 2 : cout << "gerade" << endl; break;
    case 3 : cout << "ungerade" << endl; break;
    case 4 : cout << "gerade" << endl; break;
    default : cout << "falsche Eingabe!" << endl; break;
    }
    }

    So Sinn dieses Programm sei Ausgeschlossen. So wie es jetzt ist funktioniert es auch. Mir geht es jetzt darum die ODER Funktion einzubauen, stelle mir das so vor:

    ...
    case (1 || 3): cout << "ungerade" << endl; break;
    case (2 || 4): cout << "gerade" << endl; break;
    ...

    Leider klappt das so nicht, kann mir da jemand helfen?



  • switch()
    {
        case 1:
        csae 3:
        case 5:
             cout << "ungerade" << endl;
        break; // deswegen ist das break da, die ausführung hört nicht beim nächsten case auf sondern erst beim nächsten break;
    

    Wesentlich einfacher ist das natürlich so:

    if(zahl % 2 == 0)
        cout << "gerade" << endl;
    else
        cout << "ungerade" << endl;
    

    MfG SideWinder



  • also ich wollte so etwas mal bei java machen

    und da ging es nicht
    ich denke dass es in c++ auch nicht gehen wird

    es klappt nur mit ints, shorts, longs, chars
    selbst bei double und flaot hängts glaub ich sogar schon

    bin mir aber nicht sicher...

    habs auch grad mal mit dem g++ irgendwas probiert
    meckern tut er nicht
    aber funktionieren tuts nicht
    sprich der compiler hat nix dagegen aber es klappt einfach nicht...



  • Skym0sh0 schrieb:

    also ich wollte so etwas mal bei java machen

    und da ging es nicht
    ich denke dass es in c++ auch nicht gehen wird

    es klappt nur mit ints, shorts, longs, chars
    selbst bei double und flaot hängts glaub ich sogar schon

    bin mir aber nicht sicher...

    habs auch grad mal mit dem g++ irgendwas probiert
    meckern tut er nicht
    aber funktionieren tuts nicht
    sprich der compiler hat nix dagegen aber es klappt einfach nicht...

    Es ist ja auch sinnlos ein || im case. Mekern tut er imho nicht weil er aus

    case (1 || 3):
    

    einfach

    case 1:
    

    macht.

    Da 1 true ist und 3 auch gibts eben ein true.

    Wie SideWinder schon gesagt hat einfach das break verrrücken.


Anmelden zum Antworten