Java에서 || (또는 "or") 연산자는 "short-circuit(단락평가)" 연산자다.
즉, if문에서 || 연산자를 사용할 때, 첫 번째 조건이 true로 평가되면 두 번째 조건은 검사하지 않고 전체 조건은 true로 결정된다.
반면 첫 번째 조건이 false로 평가되면 두 번째 조건을 확인한다.
&& (AND 연산자)도 "short-circuit" 평가를 한다.
따라서 첫 번째 조건이 false라면 두 번째 조건은 평가되지 않고 전체 표현식은 false로 평가된다.
이러한 특성은 불필요한 계산을 줄여 성능을 향상시키는 데 도움이 된다.
if ( someMethod1() || someMethod2() ) {
// do something
}
someMethod1() 가 true 라면 someMethod2() 는 실행도 되지 않는다.
if (object != null && object.someMethod()) {
// do something
}
첫 번째 조건(object != null)이 false이면, 두 번째 조건은 평가되지 않아 NullPointerException이 발생하지 않는다.
첫 번째 조건에서 어떤 변수나 객체의 유효성을 확인하는 경우, 두 번째 조건에서 해당 변수나 객체를 안전하게 사용할 수 있게 한다.