[kotlin] 논리식 계산 순서

논리식은 프로그래밍에서 매우 중요한 역할을 합니다. 논리식의 결과에 따라 프로그램이 다양한 동작을 수행할 수 있기 때문입니다. Kotlin에서도 논리식의 계산 순서에 대해 알아볼 필요가 있습니다.

1. 논리식의 계산 순서

Kotlin에서 논리식은 보통 && (and), || (or), ! (not) 등의 논리 연산자를 사용하여 표현됩니다. 논리식의 계산 순서는 다음과 같습니다.

1) AND 연산자 (&&)

&& 연산자는 양쪽 피연산자가 둘 다 true 일 때만 전체 논리식이 true 가 됩니다. Kotlin에서 && 연산자는 short-circuit evaluation 을 수행합니다. 이는 앞의 피연산자의 결과만으로 전체 논리식을 판단할 수 있는 경우, 뒤의 피연산자를 계산하지 않고 바로 결과를 반환하는 방식을 의미합니다.

예를 들어, 다음과 같은 논리식에서

if (x > 0 && y < 10) {
    // 코드
}

만약 x 값이 0보다 작으면 두 번째 피연산자를 평가할 필요가 없기 때문에, 두 번째 피연산자를 평가하지 않고 false를 반환합니다.

2) OR 연산자 (||)

|| 연산자는 양쪽 피연산자 중 한 쪽이라도 true이면 전체 논리식이 true 가 됩니다. 마찬가지로, Kotlin에서 || 연산자도 short-circuit evaluation 을 수행합니다. 앞의 피연산자의 결과만으로 전체 논리식을 판단할 수 있는 경우, 뒤의 피연산자를 계산하지 않고 바로 결과를 반환합니다.

예를 들어, 다음과 같은 논리식에서

if (x > 0 || y < 10) {
    // 코드
}

만약 x 값이 0보다 크면 두 번째 피연산자를 평가할 필요가 없기 때문에, 두 번째 피연산자를 평가하지 않고 true를 반환합니다.

3) NOT 연산자 (!)

! 연산자는 피연산자의 반대 값을 반환합니다. 즉, true 일 경우 false 를, false 일 경우 true 를 반환합니다.

val isSunny = false
if (!isSunny) {
    println("It's not sunny today")
}

2. 결론

Kotlin에서 논리식의 계산 순서는 &&, || 연산자에서 short-circuit evaluation 을 수행한다는 점을 주의해야 합니다. 코드를 작성할 때 앞선 피연산자의 결과만으로 전체 논리식을 판단할 수 있다면, 후행 피연산자를 평가하지 않아도 되므로 코드의 성능을 향상시킬 수 있습니다.

참고 자료