翻訳と辞書
Words near each other
・ 永久アリス輪舞曲
・ 永久カルス
・ 永久シード
・ 永久シード (プロゴルフ)
・ 永久シード (プロボウリング)
・ 永久シード権
・ 永久パターン
・ 永久ヒューズ
・ 永久プレパラート
・ 永久ヘテロ接合体
永久ループ
・ 永久不変
・ 永久伸び
・ 永久保存版!みんなで歌おうアニメソングカウントダウン 2006
・ 永久保存版!みんなで歌おうアニメソングカウントダウン2006
・ 永久保定
・ 永久保貴一
・ 永久修復材
・ 永久債
・ 永久充填


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

永久ループ : ウィキペディア日本語版
無限ループ[むげんるーぷ]
無限ループ(むげんループ、)は、コンピュータ・プログラムの一連の命令が無限に繰り返される(ループする)ことである。永久ループ(えいきゅうループ)ともいう。
専門用語としては一応きちんとした意味があるが、刺激的に感じられる他の用語(例えばメモリリーク)と同様に、通俗的な使い方もされる(「日常会話での使用」を参照)。専門的な意味としての無限ループは、通常プログラマが原因を突き止めることができる、と簡単に考える者もいるようだが、実際のところそうではないこともある(#無限ループの検出)。
== ループ ==
そもそもループとは、特定の条件が満たされるまで一連の命令を繰り返すことである。あるループに内在する特性により、条件が決して満たされない時に無限ループが発生する。こうした挙動が必要とされる状況もわずかに存在する。例えば、インターネットデータベースなどのサーバプログラムの多くは「リクエストを待ってサービスする」ことをいつまでも繰り返しているが、これは厳密には無限ループとは見なされない。ループの脱出条件として手動でプログラムを終了させることができるからである。ほとんどの場合、「無限ループ」という言葉は意図した結果ではない状況を指して使われる。つまりバグである。そういったミスは初級のプログラマでよく見られるが、経験豊富なプログラマでも間違いを犯すことはあり、その原因はかなり微妙で難解なことがある。
但し、慣用的な用法としては、ループの先頭部分でも終端部分でもない手続きの中途半端な部分でループから抜け出す必要があり、抜け出す条件が入り組んでいる、といったような場合に使うような、ループ自体は無限ループ風に書いておき(たとえばC言語なら「for (;;) 」と書くのがイディオムである)、途中脱出機能を使って脱出する(C言語なら break 文)というような場合を指しても「無限ループの形」のように言ったりもする。
BASICでの簡単な例:

10 x = x + 1
20 Print x
30 GoTo 10

ここでのループは明らかで、最終行の実行後、無条件に先頭行が実行される。終了条件を評価する時の予想外の挙動でも、この問題は発生する。以下は、C言語での例である:

float x = 0.1;
while (x != 1.1)

このループは、期待通りに10回実行されるシステムもあるかもしれないが、終了しないシステムもあるかもしれない。ここでの問題は、ループの終了条件 (x != 1.1) が2つの浮動小数点数の厳密な一致をテストしていることである。多くのコンピュータの(2進の)浮動小数点の計算では 0.1 という値は正確に表現できないため、それを11回足した値がリテラルの 1.1 の値と厳密に一致するとは限らない。
浮動小数点値を使う時には、等式でテストを行うと予想外に失敗する可能性があるため、不等式でテストすると安全である。例えば x が 1.1 と等しいかどうかをテストする代わりに (x < 1.1)(x <= 1.0) でテストする。そのどちらでも、有限回数の繰り返しで脱出できる。しかし、実行回数が不確実であることに変わりはなく、別の方法でこの例を修正するとしたら、整数を使って繰り返しの回数を数えることが確実である。

int i; /
* 整数型のループインデックス
*/
float x = 0.1;
for (i = 0; i < 10; i++)

数値解析でも似たような状況が起きることがある。ある結果を求めるために、ある許容値に誤差が収まるまで繰り返す、という手続きを使うことがある。しかし、式に問題があって誤差がその許容値を下回ることが無ければ、結果として無限ループになる。
連結リストのようなデータ構造がループを持っているのに、それに対してナイーブに再帰的な繰返しを行ってしまう、というようなパターンもある。データ構造のループの検出はちょっとした練習問題として知られている。
#無限ループの検出も参照.

抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「無限ループ」の詳細全文を読む

英語版ウィキペディアに対照対訳語「 Infinite loop 」があります。



スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.