[JAVA] short-circuit evaluation

유승한·2024년 2월 9일
0
post-thumbnail

위와 아래의 결과는 다르다.
1. 예시

if((i*j == 1)&&(i/j != 1)){
    System.out.println("false");
}

2. 예시

if((i/j != 1)&&(i*j == 1)){
    System.out.println("false");
}

조건문 내의 연산 순서와 short-circuit evaluation 원칙 때문이다.
Java에서 && 연산자는 논리 AND 연산을 수행하는데, 이 연산자는 단락 평가를 사용한다. 단락 평가란 첫 번째 조건이 거짓(false)으로 평가될 경우, 두 번째 조건을 평가하지 않고 전체 표현식의 결과를 거짓으로 결정하는 방식이다. 반대로, 첫 번째 조건이 참(true)인 경우에만 두 번째 조건을 평가한다. 따라서 첫번째 예시는 아무 것도 출력되지 않은 채 끝나는 반면 두번째 예시는 ArithmeticException 예외를 발생시킨다.

0개의 댓글

관련 채용 정보