次のスニペットは、Play ストアからダウンロードした Human Step Detection Android アプリの一部です。正常に動作するので、コードはすべて意味があると思います。
private boolean isMotion(float[] paramArrayOfFloat)
{
if ((Math.abs(this.mOldAcc[0] - paramArrayOfFloat[0]) > 1.0F) || (Math.abs(this.mOldAcc[1] - paramArrayOfFloat[1]) > 1.0F) ||
(Math.abs(this.mOldAcc[2] - paramArrayOfFloat[2]) > 1.0F));
for (boolean bool = true; ; bool = false)
{
this.mOldAcc[0] = paramArrayOfFloat[0];
this.mOldAcc[1] = paramArrayOfFloat[1];
this.mOldAcc[2] = paramArrayOfFloat[2];
return bool;
}
}
次のコードに関して、2 つの質問があります。
1) ループ条件:
for (boolean bool = true; ; bool = false){}
この条件は、ループが開始するたびに bool が true に設定されることを意味します。ループが終了すると、bool は false に設定されます。そうする目的は何ですか?さらに、ここでそうすることのポイントは何ですか?
2) if 条件:
if ((Math.abs(this.mOldAcc[0] - paramArrayOfFloat[0]) > 1.0F) ||
(Math.abs(this.mOldAcc[1] - paramArrayOfFloat[1]) > 1.0F) || (Math.abs(this.mOldAcc[2]
-paramArrayOfFloat[2]) > 1.0F));
if 条件は、; を追加することで直接終了します。条件の直後。なぜこれが行われたのか本当にわかりません。
誰か助けてください。どうもありがとう!!!