If 조건문의 실행 흐름에 대해 궁금합니다.

wltjd666의 이미지

int main() {
 
int a = 9;
int b = 5;
int c = 2;
 
if( a > 5 || b > 5 || c > 5 )
return 1;
else
return -1;
}

예를 들어 이런 식으로 3개의 조건을 or 연산자로 확인할 때, 컴파일러가 3개의 모든 식을 확인하나요? 아니면 첫번째 a > 5만 확인하고 1을 return 해주나요?
swish95의 이미지

|| 이니까요
처음조건이 true 이면 뒤에꺼는 볼필요 없으니까 조건이 참일때 구문을 실행하겠죠

------------------------------------------------------------
ProgrammingHolic

ymir의 이미지

https://en.wikipedia.org/wiki/Short-circuit_evaluation

short circuit evaluation 은 특정 조건이 이미 참이거나 거짓일 때, 나머지 조건의 값과 상관 없이 전체 조건이 참 또는 거짓임이 결정 되는 순간, 나머지 조건을 평가하지 않는 것입니다.

C 를 비롯한 많은 언어들이 short circuit evaluation 을 지원합니다.

되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』