무한 루프
중요도: 4
아래 반복문은 무한대로 작동합니다. 왜 그럴까요?
let i = 0;
while (i != 10) {
i += 0.2;
}
i
는 절대 10
이 될 수 없어서 무한 루프가 발생합니다.
코드를 실행해 실제 i
값을 확인해 봅시다.
let i = 0;
while (i < 11) {
i += 0.2;
if (i > 9.8 && i < 10.2) alert( i );
}
어떤 경우에도 i
는 10
이 될 수 없습니다.
이런 일이 발생하는 이유는 0.2
와 같은 분수를 더할 때 정밀도 손실이 발생하기 때문입니다.
그러므로 소수나 분수를 대상으로 작업 할 땐 등호 비교를 피하세요.