if mit oder verknüpfung



  • Hallo erstmal,

    ich würde gerne die variable choice einlesen und dann in einem if prüfen ob der wert 0, 1 oder 2 ist. ist dies nicht der fall soll abgebrochen werden.
    ich hätte folgendes gemacht (was nicht funktioniert)

    int choice = 1;
    if ( choice != 0 || 1 || 2)
    {
           cout << "ERROR!" << endl;
           return -1;
    }
    


  • @weirdmaiki sagte in if mit oder verknüpfung:

    if ( choice != 0 || 1 || 2)

    Das geht so nicht.
    Du musst schreiben: if (choice != 0 && choice != 1 && choice != 2) - denn in deinem Fall sagst du im Wesentlichen: if ( ((choice != 0) || 1) || 2), d.h. du testest auf coice ungleich 0 und veroderst das dann mit 1 und 2 (das ist also immer true).



  • @wob danke dir ich dachte mir das schon aber war mir unsicher wie ich es denn richtig mache



  • @weirdmaiki sagte in if mit oder verknüpfung:

    @wob danke dir ich dachte mir das schon aber war mir unsicher wie ich es denn richtig mache

    Wenn du nen durchgehenden Bereich hast, kannst auch natürlich auch if (choice < 0 || choice > 2) ... schreiben. Oder du hast ein switch...case-Block, wo du eh 1, 2 und 3 behandelst, dann kannst du im case default den Fehler behandeln. Oder oder...


Log in to reply