
<aside> 💡 목차
</aside>
https://github.com/POCU/COMP1500CodeSamples
Short-circuit evaluation in Programming - GeeksforGeeks
우선순위
**다양한 연산자**들이 있을 때 어떤 게 먼저 연산해야 되고, 어떤 게 나중에 연산해야 되어야 하는가?
결합 법칙 (좌측 & 우측 연관성)
**동일한 우선순위 를 가진 연산자**들이 있을 때 왼쪽 에서 오른쪽으로 전개해야 하는가 오른쪽에서 왼쪽으로 전개해야 하는가?
평가 순서 (단락평가)
어떤 항을, 어떤 표현식을 먼저 표현 할 것이냐?
<aside> 💡 우선순위와 평가 순서는 다르다
if (1 == 1||2 == 2&&3 == 3)
다음 식이 있을떄, 우선순위는 && 가 먼저다보니, AND부분부터 계산을 할 것 같지만,
평가의 생략에 의해 && 식은 실행조차 되지 않는다.
1 == 1 || 2 == 2 다음 식이 이미 참이기 때문에, 평가의 생략에 의해 뒤 식은 계산조차 되지 않는다
다음 식에서 || 는 Sequence Point라 부른다
>> 이미 참이니까 뒤에거는 볼 필요도 없어!
|| 및 && 연산자는 좌측 표현식의 평가를 강제함</aside>
<aside> 💡
다음 식은 평가의 결과로 T T F 가 나오고, 그 다음에 AND 연산이 우위에 있으니 먼저 연산하고, 그 다음에 OR 연산을 한다.
if ( (1+0==2) || (3+1==5) && (1+2==3))
= (F) || (F) && (T) //평가를 먼저 함
= (F) || (F) //평가 후에 연산 우선순위를 적용해 &&부터 계산
= (F)
</aside>