0

私は現在アンドロイドプロジェクトに取り組んでいます。本当に疲れていて何か愚かなことをしたのかどうかはわかりませんが、何か意味がありません。次のコードがあります。

long pauseTime = settings.getLong("timePaused", 0);
        long currentTime = common.getCurrentEpochTimeStamp();
        int difference = (int) (currentTime - pauseTime);
        int secondsBeforeLogOff = settings.getInt("autoLogOffTime", 10) * 60;
        if (secondsBeforeLogOff > difference)
        {
            return true;
        }
        else
        {
            return false;
        }

上記のコードをデバッグしてステップ実行すると、 はsecondsBeforeLogOff60 に設定され、differenceは 5 です。 if ステートメントでは、false と評価されると予想されますが、コードをステップ実行すると、 と の両方に入りますreturn truereturn false、このコードを呼び出す if ステートメントでは、常に true を返すようです。

この if ステートメントの何が問題なのかわかりません。if ステートメントで 2 つの変数を交換しようとしましたが、うまくいきませんでした。

ご協力いただきありがとうございます。

4

2 に答える 2

1

上記のコードをデバッグしてステップ実行すると、secondsBeforeLogOff が 60 に設定され、差が 5 に設定されます。...常に true を返すようです。

60 は 5 より大きいので、これは正しいです。


また、単純に次のように書くこともできます:

return secondsBeforeLogOff > difference;
于 2012-12-03T21:48:12.717 に答える
0

Eclipse デバッガーは常にこれを行い、どの条件がヒットしたかについて誤った印象を与えます。:(

于 2012-12-03T21:52:41.677 に答える