본문 바로가기

프로그래밍 언어/Java

[ANDROID / JAVA] ShortCircuitEvaluation

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으로 출력이 됩니다. 이 결과로 부터 알 수 있는 사실은 num2 의 연산은 이루어지지 않는다는 것 입니다. 


그 이유는 SCE( ShortCircuitEvaluation ) 라고 부르는 연산의 특성 때문입니다. 다음은 그 특성입니다. 

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

이러한 특성때문에 num2 += 10 의 연산은 이루어지지 않았습니다.

'프로그래밍 언어 > Java' 카테고리의 다른 글

[ANDROID / JAVA] Activity 간 화면 전환  (0) 2023.05.11
[ANDROID / JAVA] Inflation  (0) 2023.05.09
[ANDROID / JAVA] 상속과 생성자  (0) 2023.05.08
[ANDROID / JAVA] 변수  (1) 2023.05.08
[ANDROID / JAVA] 상속 (inheritance)  (0) 2023.05.08