If- Abfrage

TheBeginner

Mitglied
Hallo Zusammen,

Java:
if (direction != -1 && speed != 0 && newMovement && !movement) { 
   motor.startMovement(direction, speed); 
   movement = true; 
   return true;



Das bedeutet doch :

newMovement && !movement


Der Wert von newMovement darf nicht derselbe sein von movement.
! steht ja für Negation.

Ich bin leider noch anfänger....

z.B Also: wenn newMovement true und movement true ist, wäre meiner Meinung nach, die If-Bedingung nicht erfüllt.


Was sagt ihr ?

Laut Musterlösung liege ich daneben....

Danke im Voraus
 
Java:
if ((direction != -1) && (speed != 0) && (newMovement) && (!movement)) {


Ich persönlich bevorzuge, in if-clauses das Klammern, vermeidet zumindest bei meinen Projekten die unnötige Fehlersuche. 🙂

Daraus geht hervor, dass du 4 States hast, du beschreibst aber, dass du 3 Haben möchtest dementsprechend wäre die Lösung von Templarthelast korrekt.


[EDIT]Tante Edit sagt:
SlaterB hat natürlich auch Recht 🙂[/EDIT]
 
Zuletzt bearbeitet:
Hi TheBeginner

Java:
if (direction != -1 && speed != 0 && newMovement && !movement) {

Diese if Anweisung scheitert bereits, wenn eine der vorderen Bedigungen nicht zutrifft.
Ist dies der Fall, werden die danach folgenden Bedigungen nicht mehr ausgewertet.

Zum Thema Klammerung kann ich Illusion nur zustimmen, es ist leichter zu lesen und bewahrt auch vor so manchem Fehlerchen.

PS: Zu !movement, hier sagst Du "NOT movement", damit sollte alles klar sein 🙂

Pentalon
 
Diese if Anweisung scheitert bereits, wenn eine der vorderen Bedigungen nicht zutrifft.
Ist dies der Fall, werden die danach folgenden Bedigungen nicht mehr ausgewertet.

Hmm... Ich frage mich jetzt, ob man irgendwie bezwecken kann, dass die IF-Abfrage noch nicht beim ersten falschen Wert abbricht.

Deshalb habe ich eine Frage. Bricht die IF-Abfrage nur deshalb schon vorher ab, weil alle Teilaussagen oder Ausdrücke in Verbindung mit UND-Konjunktionen wahr sein müssen, oder kann es auch daran liegen, dass der Operator "&&" mit Short Circuit Evaluation läuft ?

MfG
 
Jaa, das meinte ich ja. Dann bricht die IF-Abfrage nicht wegen den Konjunktionen ab, sondern doch wegen dieser Short Circuit Evaluation. 🙂
 
Es geht in diesem Fall um die Musterlösung von TheBeginner und ich wollte diesen Aspekt noch zu seinen Überlegungen liefern.
Hobbes hat natürlich recht, mit & werden gezwungenermassen alle Teile der Bedingung ausgewertet, damit ein logisches AND gemacht und dass ist dann TRUE oder FALSE. Das sind aber Konstruktionen die man vermeinde sollte.

Pentalon
 

Neue Themen


Zurück
Oben