0 여러 INT 값을 비교하는 효율적인 방법

Wylandylan123 :

나는 0으로 세 가지 길이를 비교하기 위해 노력하고있어 및 반복보다 더 효율적 / 청소기 방법이 있다면 궁금 해서요! "= 0".

public static boolean isTriangle(int lengthA, int lengthB, int lengthC) {
    if (lengthA != 0 && lengthB != 0 && lengthC != 0) { //is there a shorter/cleaner way to write this?
        //do a thing
    }
    return false;
}
어윈 Bolwidt :

당신은 세 가지를 요구하고; 당신은 코드를 요구하고

  1. 짧은
  2. 보다 효율적으로
  3. 청소기

나는 당신을위한 대안이 :

if ((lengthA & lengthB & lengthC) != 0)

그것은 맞습니다 - 그것은 기존의 코드와 동일하게 수행 (그것은 비트 및 사용)

  1. 그것은이다 짧아 .
  2. 잠재적으로의 보다 효율적인 만 좋은의 마이크로 벤치를 확인할 수 있습니다. 이 경우에도, 그것은 당신을 안내하지 않아야합니다. 매우, 매우 가능성이 성능 분석 도구를 사용하여 응용 프로그램에서 병목 현상으로 나타나는지 점 3의 때문에, 당신은 단지 그것을 고려해야한다.
  3. 그러나 그건 하지 청소기 . 그리고 나는 그것을 읽고 이해하는 코드를 어렵게 만들 것을 의미하고, 그와 코드를 유지하는 사람은 이제 비트 조작에 대해 생각해야합니다.

대부분의 경우 동일은 제안 된 대안을 갈 것입니다.

당신이 원래 코드에서하고 있던 것은 좋은 충분하다; 그것은 사람들이 이해가 무엇이고, 그것은 가장 가능성이 당신이 목적을 위해 쓸 수있는 깨끗한 코드입니다.

추천

출처http://43.154.161.224:23101/article/api/json?id=316104&siteId=1