Übersetzung in C++?
-
Hallo,
ich bin gerade dabei mich mit locigal operators in c++ auseinanderzusetzen!
Was bedeuten dann folgende Sachen genau? Kann es irgendwie noch nicht so richtig deuten :
-
a>b || a!=c && b>c
-
(ch == ’q’ || ch == ’Q’) && mouseButtonState != pressed
-
x-y>0 && x != y && (x+y <=0 || x==y)
bei 1) bedeutet es ja: " a ist größer als b oder a ist nich c und b ist größer als c" oder?
Gruß
Gustlbert
-
-
hi, zu 1 hast bi Recht zu 2 für mich sieht es nach winapi aus, also Windows, vermutlich eine Prüfung nach ob q oder Q gedruckt würde.
-
- scheint ziemlicher Unsinn zu sein, zuerst wird verlangt dass x>y, dann dass x!=y, was ja erstere Bedingung schon überprüft, und dann wird wieder gefragt ob x==y.^^
-
gustlbert schrieb:
Hallo,
ich bin gerade dabei mich mit locigal operators in c++ auseinanderzusetzen!
Was bedeuten dann folgende Sachen genau? Kann es irgendwie noch nicht so richtig deuten :
- a>b || a!=c && b>c
(a ungleich c und b grösser c) oder a grösser b
Beachte hier, dass && stärker bindet als ||.- (ch == ’q’ || ch == ’Q’) && mouseButtonState != pressed
ch muss 'q' oder 'Q' sein und mousebuttonState ungleich pressed.
- x-y>0 && x != y && (x+y <=0 || x==y)
Beachte hier einfach was wohin gehört:
(x-y>0) && (x != y) && ( (x+y) <=0 || x==y)Ist das klar oder was verstehst du nicht?
-
Okay Vielen Dank!
Aber wo beginnt man dann bei 3) zu lesen, wenn && stärker bindet als || ?
Weil übersetzt macht 3) für mich irgendwie nicht viel sinn!(x-y größer als 0 und x ungleich y) und (x+y kleiner gleich 0 oder x=y)?
aber man hat ja davor x ungleich y definiert und danach setzt man beide variablen gleich?!
-
gustlbert schrieb:
Okay Vielen Dank!
Aber wo beginnt man dann bei 3) zu lesen, wenn && stärker bindet als || ?
Weil übersetzt macht 3) für mich irgendwie nicht viel sinn!Du kannst das so lesen: entweder (a>b) ODER ( a!=c UND b>c)
beachte, dass &&(logisch UND) stärker bindet, daher die Klammersetzung!gustlbert schrieb:
(x-y größer als 0 und x ungleich y) und (x+y kleiner gleich 0 oder x=y)?
aber man hat ja davor x ungleich y definiert und danach setzt man beide variablen gleich?!- x-y>0 && x != y && (x+y <=0 || x==y)
beachte hier wieder:
x-y>0 muss zutreffen UND x!=y muss zutreffen UND (x+y<=0 muss zutreffen ODER x==y muss zutreffen)
[EDIT]: Man hat nicht x ungleich y definiert, du überprüfst lediglich, ob x ungleich y ist! bei x==y überprüfst du, ob x gleich groß wie y ist!
-
Eigentlich heißt es ja nur -y>=x>y. Das ist beispielsweise für x=0, y=-1 erfüllt.