무한 루프
컴퓨터에서 프로그램이 끝없이 동작하는 것
인피니트 루프는 여기로 연결됩니다. 거리 이름에 대해서는 애플 캠퍼스 문서를 참고하십시오.
무한 루프(infinite loop)는 컴퓨터에서 프로그램이 끝없이 동작하는 것으로, 루프문에 종료 조건이 없거나, 종료 조건과 만날 수 없을 때 생긴다. 다중작업을 지원한 오래된 운영 체제는 한 프로그램의 무한루프에 전체 프로그램이 응답할 수 없게 만들었다.
의도하지 않은 무한 루프
편집실수를 하여 무한 루프가 생길 수 있다. 무한 루프가 생기는지를 확인하는 일반적인 방법은 존재하지 않는다(정지 문제).
사례
편집dim x as integer
do until x > 5
x = 1
x = x + 1
loop
루프문 안에 x=1이 들어있기 때문에, x는 1로 재정의되어 다음 행에서 x=2가 된다. 따라서 조건문을 탈출할 수 없다. x=1을 루프 앞으로 끄집어 내어 해결할 수 있다.
다음은 컴퓨터에서 변수가 기대하지 않은 성질을 가져서 무한 루프가 되는 사례이다.
float x = 0.1;
while (x != 1.1) {
printf("x = %f\n", x);
x = x + 0.1;
}
0.1이 10번 더해지면, 1.1이 되어야겠지만 실제로는 2진법 부동소수점으로 컴퓨터가 처리하므로 미세하게 다르기 때문에 무한루프가 된다. 이러한 문제는 x가 정해진 수와 같을 때 멈추는 조건을 부등호로 변경하여 해결할 수 있다.
같이 보기
편집외부 링크
편집- Make an infinite loop in several languages, on programming-idioms.org.