[Algorithm] Short Circuit Evaluation이란?

Short Circuit Evaluation에 대해서 간단하게 알아보자


환경

  • C, C++


Short Circuit Evaluation이란?

  • Short Circuit Evaluation이란 AND 혹은 OR의 연산에 있어서 결과가 확실하게 예측이 되었을 때 뒤에 나머지 연산을 실행하지 않고 답을 내버리는 경우를 의미합니다.


AND 연산의 경우

  • AND연산의 경우에 false가 우선 나와버리면 AND 뒤에 나오는 연산은 생략이됩니다.

OR 연산의 경우

  • OR연산의 경우에 true가 우선 나와버리면 OR 뒤에 나오는 연산은 생략이됩니다.


Short Circuit Evaluation 예제

구체적인 예시는 아래 코드와 같습니다.

AND 연산의 경우

#include <stdio.h>

int main (){
	int pass = 0;
	int i = 0;

	if(pass && i++){} //i++이 실행되지 않습니다.

	printf("pass: %d i: %d\n", pass, i);

	return 0;
}

결과는 아래와 같습니다.

$ ./and_example
$ pass: 0 i: 0


OR 연산의 경우

#include <stdio.h>

int main (){
	int pass = 1;
	int i = 0;

	if(pass || i++){} //i++이 실행되지 않습니다.

	printf("pass: %d i: %d\n", pass, i);

	return 0;
}

결과는 아래와 같습니다.

$ ./or_example
$ pass: 1 i: 0