2つの変数(xSpeedとySpeed)があり、それらがminSpeed以下になると独立してゼロに設定し、両方がゼロのときに終了するという共通の状況があります。&&を実行する最も効率的な方法?
最も効率的な方法は何でしょうか?現在、私は2つのメソッド(方法2はクリーナーを)持っていますが、あなたたちはより良い方法を知っていた場合、私は思っていた....
あなたが行うことができますMethod1:
bool isZeroX = Math.abs(xSpeed)< minSpeed;
bool isZeroY = Math.abs(ySpeed)< minSpeed;
if(isZeroX && isZeroY) return -1;
else if(isZeroX) xSpeed = 0;
else if(isZeroY) ySpeed = 0;
Method2:
if(Math.abs(xSpeed)< minSpeed) xSpeed = 0;
if(Math.abs(ySpeed)< minSpeed) ySpeed = 0;
if(ySpeed==0 && xSpeed==0) return -1;
!天才!しかし、なぜ私は-minSpreadが必要ですか? Math.absを使用しているのが遅いですか? – tetris11
'Math.abs(int)'は、このコードの中で最も高価な部分であるブランチになります。全体的に、ブランチの数が削減されます。 '-minSpread