java

숏서킷 연산에 관하여

heejunp 2025. 1. 20. 22:09

1. 숏서킷 연산이란?

숏서킷 연산은 논리 연산자 && (AND)와 || (OR)에서 조건식의 결과를 미리 판단할 수 있을 때, 남은 조건을 평가하지 않고 연산을 종료하는 최적화 기법입니다.

1.1 동작 원리

  • && (AND): 첫 번째 조건이 false라면, 전체 결과는 항상 false이므로 나머지 조건은 평가하지 않습니다.
  • || (OR): 첫 번째 조건이 true라면, 전체 결과는 항상 true이므로 나머지 조건은 평가하지 않습니다.
// AND 연산
if (a != 0 && b / a > 1) {
    System.out.println("조건 충족");
}
// a가 0이면 b / a > 1은 평가되지 않음 (ZeroDivisionError 방지)

// OR 연산
if (a == 0 || b / a > 1) {
    System.out.println("조건 충족");
}
// a가 0이면 b / a > 1은 평가되지 않음 (ZeroDivisionError 방지)

2. 숏서킷 연산이 없는 경우

일부 프로그래밍 언어(예: C의 비트 연산자 &, |)는 항상 모든 조건을 평가합니다. 이러한 경우 다음과 같이 코드가 동작합니다.

int a = 0;
int b = 5;
if (a != 0 & b / a > 1) {
    printf("조건 충족");
}
// 모든 조건이 평가되므로 ZeroDivisionError 발생 가능

4. 결론

숏서킷 연산은 효율성과 안전성을 높이는 중요한 기법입니다. 논리 연산을 사용할 때 조건의 평가 순서와 생략 가능성을 고려하여, 오류를 방지하고 성능을 최적화하는 코드를 작성해야 합니다. 이를 통해 코드의 가독성과 유지보수성을 높일 수 있습니다.