&& &&를 수행하는 가장 효율적인 방법
-
13-12-2019 - |
문제
두 개의 변수 (xspeed 및 yspeed)가있는 공통된 상황을 가지고 있으며 inspeed 아래에서 떨어지면 0으로 독립적으로 설정하고 0을 모두 종료합니다.
가장 효율적인 방법은 무엇입니까?현재 두 가지 방법 (방법 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