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();
    }

出力は次のとおりです。 Thrust Lag + Delay : 1333710037096 CurrentTime : 1333710027174

_thrust_delay = 10000 ところで。

これは false を返すはずですが、そうではありません。このステートメントを出力し続けます。誰でもアイデアはありますか?それとも、ここで基本的な何かが欠けていますか?

このステートメント内のすべての変数は long であり、_thrust_lag はコンストラクターとこの関数で一度しか設定されないため、問題はここにあります。

4

1 に答える 1

4

文末;の末尾if: 削除します。

末尾;のセミコロンは、ステートメントが実行されない分岐になります。

if (...);

と同じです:

if (...)
{
}

これは、投稿されたコード内のステートメント{}が常に実行されることを意味します。

于 2012-04-06T11:13:06.207 に答える