表演&&的最有效方法?
-
13-12-2019 - |
题
我有一个常见的情况,你有两个变量(xspeed和yspeed),我想在低于minspeed的情况下独立设置为零,并且当它们均为零时退出。
最有效的方法是什么?目前我有两种方法(方法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;
. 解决方案
可以做
if(-minSpread < xSpeed && xSpeed < minSpeed) {
xSpeed = 0;
if(-minSpread < ySpeed && ySpeed < minSpeed) {
ySpeed = 0;
return -1;
}
} else if(-minSpread < ySpeed && ySpeed < minSpeed) {
ySpeed = 0;
}
. 其他提示
我更喜欢你的第二个例子,因为它是最可读的。除非您可以证明您应该优化,否则更喜欢效率的可读性。
也许是制作一个优雅的布尔方法,看该对象是否正在移动/停止:
boolean isStopped() {
if(Math.abs(xSpeed)< minSpeed) xSpeed = 0;
if(Math.abs(ySpeed)< minSpeed) ySpeed = 0;
return (ySpeed==0 && xSpeed==0);
}
. 不隶属于 StackOverflow