본문 바로가기
▶개발/C Language

C언어 단락평가(short-circuit evaluation)

by 브라더 준 2018. 2. 13.

- AND연산에서의 단락평가


printf("%d\n", 0 && 1); // 첫번째가 거짓이므로 두번째 값 확인하지 않고 거짓으로 결정


c언어에서 0은 거짓, 0이 아닌 값은 모두 참이므로 첫 번째 값 0은 거짓으로 확인하고 논리AND 결과는 무조건 거짓이 되므로 두 번째 값은 확인하지 않는다. 즉, 논리 AND연산은 모두 참이어야 참의 결과가 나오기 때문에 하나라도 거짓일 시 뒤의 연산을 계속 하더라도 결과는 거짓으로 결정되기에 단락평가가 사용된다.



- OR연산에서의 단락평가


printf("%d\n", 1 || 1); // 첫번째가 참이므로 두번째 값 확인하지 않고 참으로 결정 
printf("%d\n", 1 || 0); // 첫번째가 참이므로 두번째 값이 거짓이어도 확인하지 않고 참으로 결정


논리 OR연산은 하나라도 참일 경우 결과가 참이므로, 첫 번째 결과가 참일 경우 두 번째 값 결과에 상관없이 참으로 결정한다.

반응형

'▶개발 > C Language' 카테고리의 다른 글

C언어 연산자 우선순위 정리표  (0) 2018.02.13