Самый эффективный метод выполнения &&? - PullRequest
0 голосов
/ 13 марта 2012

У меня есть общая ситуация, когда у вас есть две переменные (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;

Ответы [ 3 ]

3 голосов
/ 13 марта 2012

Я предпочитаю ваш второй пример, потому что он наиболее читабелен. Предпочитайте удобочитаемость, а не эффективность, если вы не докажете, что должны оптимизировать.

2 голосов
/ 13 марта 2012

Вы можете сделать

if(-minSpread < xSpeed && xSpeed < minSpeed) {
    xSpeed = 0;
    if(-minSpread < ySpeed && ySpeed < minSpeed) {
        ySpeed = 0;
        return -1;
    }
} else if(-minSpread < ySpeed && ySpeed < minSpeed) {
    ySpeed = 0;
}
1 голос
/ 13 марта 2012

Возможно, создайте элегантный логический метод, чтобы увидеть, движется ли объект / остановлен:

boolean isStopped() {
    if(Math.abs(xSpeed)< minSpeed) xSpeed = 0;
    if(Math.abs(ySpeed)< minSpeed) ySpeed = 0;

    return (ySpeed==0 && xSpeed==0);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...