解説
「無限ループ」は、ループ処理の1つです。ただし、よくないループ処理です。無限ループは、継続条件式が不適切なために、処理が意図したように終わらず、実行され続けるような処理を指します。
for文でよくあるのは、比較演算子を間違えたり、インクリメントやデクリメントの処理を逆に書いてしまったりすることです。
また、while文では、終了条件にしている変数に、偽の値がいつまで経っても入らないなどといったケースがあります。
こういった無限ループは、様々な問題を引き起こします。
まず、そのプログラム内では、ループ以降の処理が行われないために、意図した動作を実現できません。
また、OS全体で見ると、CPUを1つのプログラムが延々と占有するために、他のプログラムなどの処理に不都合をきたします。
それだけでなく、無限ループの中に、ハードディスクへの書き込み処理などが入っていると、ハードウェアを酷使してしまい、不具合を招くような可能性もあります。
無限ループは、気付かない内に書いてしまったりしますので、ループ処理を書く場合は気を付けてください。
またゲームなどでは、無限ループになるようなプログラムを書く場合があります。ただしその場合は、処理中に適切な待機処理を入れたり、終了時にループを適切に抜けるような処理を加えます。そのためこの場合は、意図せずループし続けるわけではありません。
サンプル
無限ループになるような処理を、JavaScriptで簡単に書いてみます。
<html>
<head>
<title>「無限ループになる処理」のサンプル</title>
</head>
<body>
<pre><script type="text/javascript">
for (var i = 0; i < 10; i --) {
document.writeln(i);
}
</script></pre>
</body>
</html>
<html>
<head>
<title>「無限ループになる処理」のサンプル2</title>
</head>
<body>
<pre><script type="text/javascript">
while (true) {
document.writeln("true");
}
</script></pre>
</body>
</html>
この記事は参考になりましたか?
既に会員の方はを行ってください。
- マンガで分かるプログラミング用語辞典連載記事一覧
- この記事の著者
-
柳井 政和(ヤナイ マサカズ)
クロノス・クラウン合同会社 代表社員http://crocro.com/オンラインソフトを多数公開。プログラムを書いたり、ゲームを作ったり、記事を執筆したり、マンガを描いたり、小説を書いたりしています。「めもりーくりーなー」でオンラインソフト大賞に入賞。最近は、小説家デビューして小説も書いています(『裏切りのプログラム』他)。面白いことなら何でもOKのさすらいの企画屋です。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
