2012-04-06 4 views
0
if(System.currentTimeMillis() > _thrust_lag + _thrust_delay); 
    { 
     this._thrust3Position = new_Position; 

     Log.w("Thrust Lag + Delay", Long.toString(_thrust_lag + _thrust_delay)); 
     Log.w("Current Time", Long.toString(System.currentTimeMillis())); 

     _thrust_lag = System.currentTimeMillis(); 
    } 

Die Ausgabe lautet: Thrust Lag + Verzögerung: 1333710037096 Current: 1333710027174Aktuelle Zeit IF-Anweisung GT ThrustLag

_thrust_delay = 10000 btw.

Dies sollte falsch zurückgeben, aber es ist nicht, es gibt diese Anweisung aus. Irgendwelche Ideen? Oder fehlt mir hier etwas Grundlegendes?

Alle Variablen in dieser Anweisung sind longs, auch _thrust_lag wird nur einmal im Konstruktor und in dieser Funktion gesetzt, so dass das Problem hier lügt.

Antwort

4

Nachlauf ; am Ende der if Anweisung: Entfernen Sie es.

Die Hinter ; Semikolon zu einer Verzweigung ohne Anweisungen ausgeführt werden:

if (...); 

gleiche ist, wie:

if (...) 
{ 
} 

Diese in den entsandten Code bedeutet, dass die Aussagen im {} sind immer ausgeführt.

+0

OMG etwas so einfaches, ich sah das für wie 30 Minuten und denke WTF? Danke vielmals! –

+0

+1 sehr guter Fang. –