ShortCircuitEvaluation -java

CHA·2022년 11월 9일
0

JAVA 개념조각

목록 보기
1/4

ShortCircuitEvaluation (lazy Evaluation) 은 연산의 특성중 하나로,
연산의 효율 및 속도를 높이기 위해 불필요한 연산을 생략하는 행위이다.

아래 코드를 보자.

int num1 = 0;
int num2 = 0;
boolean result;

result = ((num1 += 10) < 0) && ((num2 += 10) > 0); 

result = ((num1 += 10) > 0) || ((num2 += 10) > 0); 

System.out.println(num1); 
System.out.println(num2); 

위 코드는 && 연산자와 || 연산자를 이용하여 조건의 참,거짓을 판별하여
변수 result 에 대입하고, num1 과 num2 의 값을 출력하는 코드이다.

여기에서 num1의 값과 num2의 값은 각각 20, 0으로 출력이 된다.
즉, += 연산자를 이용하여 값이 바뀌는 변수는 num1 뿐이라는 이야기 이다.
그 이유는 SCE 라고 부르는 연산의 특성 때문인데, 다음을 보자.

&& 왼쪽 피연산자의 값이 false 라면 오른쪽 피연산자는 연산하지 않는다.
|| 왼쪽 피연산자의 값이 true 라면 오른쪽 피연산자는 연산하지 않는다. 

이러한 특성때문에 num2 += 10 의 연산은 이루어지지 않았으며,
결과적으로 변수 num2 의 값은 0으로 변하지 않았다.

profile
Developer

0개의 댓글