숏서킷 연산에 관하여

2025. 1. 20. 22:09·java

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. 결론

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

'java' 카테고리의 다른 글

Signature 에 관하여  (0) 2025.01.22
BufferedReader와 Scanner의 차이 및 비교  (0) 2025.01.21
Interface 에 관하여  (1) 2025.01.19
Method 에 관하여  (0) 2025.01.16
Java 에 관하여  (2) 2025.01.15
'java' 카테고리의 다른 글
  • Signature 에 관하여
  • BufferedReader와 Scanner의 차이 및 비교
  • Interface 에 관하여
  • Method 에 관하여
heejunp
heejunp
희준개발
  • heejunp
    희준개발
    heejunp
  • 전체
    오늘
    어제
    • 분류 전체보기 (35)
      • java (16)
      • spring (1)
        • test (0)
      • web (1)
      • cloud (1)
      • database (2)
      • algorithm (7)
      • OS (2)
      • sonarqube (0)
      • ai (1)
      • 기타 (2)
      • 사고 (1)
      • go (0)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    heejunp
    숏서킷 연산에 관하여
    상단으로

    티스토리툴바