논리연산자 주의사항으로 단축 계산을 알아봤다.
// C++ code
//
void setup()
{
Serial.begin(9600);
int x = 1;
int y = 1;
if ((1==0)&&(++x==2)){}
Serial.println(x);
if ((1==1)||(--y==1)){}
Serial.println(y);
}
void loop(){}
Code language: C++ (cpp)
출력>>
1
1
AND연산자는 첫번째 (1==0)이 거짓인 것을 파악하면 (++x==2)를 실행하지 않는다.
이와 같은 현상은 단축 계산의 영향이다.
단축 계산
- (A) && (B) : A가 거짓인 것을 확인하면 굳이 B를 실행, 확인하지 않는다.
- (A) || (B) : A가 참인 것을 확인하면 굳이 B를 실행, 확인하지 않는다.