Study- MSC/Computer2007. 8. 29. 01:49

  얼마 전에 동아리 홈페이지에다 올려 놓은 글이 있었다.(이거 말했다간 익게에 내가 올렸다는거 들키는데..)


  if(조건 a && 조건 b) 이렇게 되어 있을 때 조건 a가 False라면 조건 b를 확인할까 안할까?


  답은 확인하지 않는다이다. 효율을 따져보면 당연한 이야기일 것이다. a가 틀렸는데 굳이 뒤에까지 체크할 필요가 없으니까. 이렇게 연산할 때 한쪽에서 그 연산의 값이 판단되면 연산을 멈추는 규칙을 숏 서킷 규칙(Short Circuit Rule)이라고 한다. &&연산자 이외에, ||도 마찬가지이다.


  이 규칙은 프로그래밍 언어가 도입되기 전에 논리 회로에서 사용되고 있는 것이라고 한다.

  그런데 이런 규칙이 오히려 프로그래머에게 혼동을 줄 수 있는 경우가 있다. 그래서 한가지 팁이 있다면, &&으로 비교하지 않고, 비트 연산자인 &로 비교하면, 숏 서킷 규칙이 적용되지 않는다.

Posted by 머리