한국   대만   중국   일본 
無限 루프 - 위키百科, 우리 모두의 百科事典 本文으로 移動

無限 루프

위키百科, 우리 모두의 百科事典.

無限 루프 (infinite loop)는 컴퓨터에서 프로그램이 끝없이 動作하는 것으로, 루프文에 終了 條件이 없거나, 終了 條件과 만날 수 없을 때 생긴다. 多重作業 을 支援한 오래된 運營 體制 는 한 프로그램의 無限루프에 全體 프로그램이 應答할 수 없게 만들었다.

意圖하지 않은 無限 루프 [ 編輯 ]

失手를 하여 無限 루프가 생길 수 있다. 無限 루프가 생기는지를 確認하는 一般的인 方法은 存在하지 않는다( 停止 問題 ).

事例 [ 編輯 ]

비주얼 베이직 [ 編輯 ]

dim
 x
 as
 integer

do
 until
 x
 >
 5

x
 =
 1

x
 =
 x
 +
 1

loop

루프門 안에 x=1이 들어있기 때문에, x는 1로 再定義되어 다음 行에서 x=2街 된다. 따라서 條件文을 脫出할 수 없다. x=1을 루프 앞으로 끄집어 내어 解決할 수 있다.

C 言語 [ 編輯 ]

다음은 컴퓨터에서 變數가 期待하지 않은 性質을 가져서 無限 루프가 되는 事例이다.

float
 x
 =
 0.1
;

while
 (
x
 !=
 1.1
)
 {

  printf
(
"x = %f
\n
"
,
 x
);

  x
 =
 x
 +
 0.1
;

}

0.1이 10番 더해지면, 1.1이 되어야겠지만 實際로는 2陣法 浮動小數點 으로 컴퓨터가 處理하므로 微細하게 다르기 때문에 無限루프가 된다. 이러한 問題는 x가 定해진 數와 같을 때 멈추는 條件을 不等號로 變更하여 解決할 수 있다.

같이 보기 [ 編輯 ]

外部 링크 [ 編輯 ]