[java] 논리 연산자의 단락 평가

논리 연산자는 여러 개의 논리식을 결합하여 하나의 결과로 평가하는 데 사용됩니다. 논리 연산자에는 AND 연산자(&&), OR 연산자(||), NOT 연산자(!) 등이 있습니다. 논리 연산자는 코드의 조건문이나 반복문에서 중요하게 사용되며, “단락 평가(short-circuit evaluation)”라는 특별한 동작 방식을 갖고 있습니다.

단락 평가란?

단락 평가는 논리 연산식에서 첫 번째 피연산자만으로 전체 결과를 알 수 있는 경우, 두 번째 피연산자를 평가하지 않고 결과를 결정하는 것을 말합니다. 이 동작은 연산 속도를 향상시키고, 예외 상황을 처리할 때 유용하게 사용됩니다.

AND 연산자(&&)

AND 연산자는 양쪽 피연산자가 둘 다 true일 때 전체 결과가 true가 되고, 그렇지 않은 경우엔 false가 됩니다. 단락 평가에서, 첫 번째 피연산자가 false라면 두 번째 피연산자는 더이상 평가되지 않습니다.

예시:

if (a != null && a.isValid()) {
    // ...
}

위 코드에서, anull일 경우 두 번째 피연산자 a.isValid()는 평가되지 않습니다.

OR 연산자(||)

OR 연산자는 양쪽 피연산자 중 하나라도 true이면 전체 결과가 true가 되고, 둘 다 false일 경우에만 false가 됩니다. 마찬가지로 단락 평가에서, 첫 번째 피연산자가 true라면 두 번째 피연산자는 더이상 평가되지 않습니다.

예시:

if (input == null || input.isEmpty()) {
    // ...
}

위 코드에서, inputnull이 아닐 경우 두 번째 피연산자 input.isEmpty()는 평가되지 않습니다.

NOT 연산자(!)

NOT 연산자는 피연산자의 논리값을 반대로 바꿉니다. 단락 평가는 NOT 연산자에는 적용되지 않습니다.

논리 연산자의 단락 평가는 코드의 효율성을 높이고, 예외 처리를 간편하게 만들어줍니다. 하지만 코드 가독성을 해치지 않도록 주의하여 사용해야 합니다.


참고 문헌: