boj 8980먼 문제를 통해 접한 if(!b)형태의 코드에 관하여.

boj 8980번 문제의 풀이 코드에 if(!b)형태의 코드를 보았는데, 이때 b의 경우 int 타입으로 선언된 값이다. 

그렇다면 이때에 if(!b)의 경우, b가 가리키는 값이 양수, 0, 음수 이렇게 존재할 수 있을텐데, 과연 if(!b)코드는 b가 양수, 0, 음수일때 각각 어떤식로 해석되어서 if문 내부가 실행될지 안될지에 대해서 검색해보았다. 

결론부터 말하면 이 경우, b==0 인 경우에만 (!b)==1이 되어서 코드가 실행되고, 나머지 경우는 모두 코드가 실행되지 않는다. 결국 b가 양수이던, 음수이던 !b는 if문 내부의 판단 부분에서는 false로 판단되는 것이고, 그래서 코드가 실행되지 않는다. 

오로지 b==0이 되어서, !b==1 로 해석되어서 !b가 true로 해석되어야 if문 내부의 코드가 실행된다. 

그러니까 앞으로는 !b 같은 형태의 코드를 보면, 이 내부의 값 b가 0가 되는 경우만을 고려해서 이 코드를 해석하도록 하자. b가 int 타입처럼 숫자로 선언되었을때 말이다. 

 

  Comments,     Trackbacks