解説
「無限ループ」は、ループ処理の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>