출처: C언어 펀더멘탈
다음을 보자
for(i=0;i<10;i++)
와
for(i=0;i<=9;i++)
의 차이를 쉽게 구별되는가?
두번다 9번을 실행하는 loop이다.
그렇다면, 이 문제를 바꿔서
18<=x<=37 사이의 정수의 갯수는 몇개일까?
헷갈리는데, 정답은 37-18 +1이다.
여기서 1을 더해주는 이유가 대칭 경계(양쪽이 같은 경계법(<,> & =))를 썼기 때문이다.
대신 18 <= x < 37을 한다면, 자신있게
37-18이라고 계산 할 수 있다.
이를 비대칭경계(asynchronous bound)라고 한다.
이는 loop이 몇번 돌지 계산하기 편하게 해 줄 뿐 아니라,
for(i=n;i<=n;n++)
와 같은 이상한 loop가 돌지 않도록 방지도 해준다.
'프로그래밍' 카테고리의 다른 글
cpplint 사용후기 (0) | 2013.12.05 |
---|---|
db8 schema (0) | 2013.12.03 |
pair coding 를 하기 위한 자세 (0) | 2012.04.27 |
콘솔상 동작 상태 애니메이션 (0) | 2012.04.12 |
면접 때, 이 정도는 1분안에 할 수 있어야 된다. (1) | 2012.04.08 |