SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

マンガで分かるプログラミング用語辞典

「無限ループ」
~マンガでプログラミング用語解説

マンガで分かるプログラミング用語辞典(28)

  • X ポスト
  • このエントリーをはてなブックマークに追加

解説

 「無限ループ」は、ループ処理の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>
フィードバックお待ちしております!

 ご感想、解説して欲しい用語、解説内容のアドバイスなどございましたら、FacebookTwitterなどでお気軽に編集部までお寄せください。よろしくお願いいたします。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
マンガで分かるプログラミング用語辞典連載記事一覧

もっと読む

この記事の著者

柳井 政和(ヤナイ マサカズ)

クロノス・クラウン合同会社 代表社員http://crocro.com/オンラインソフトを多数公開。プログラムを書いたり、ゲームを作ったり、記事を執筆したり、マンガを描いたり、小説を書いたりしています。「めもりーくりーなー」でオンラインソフト大賞に入賞。最近は、小説家デビューして小説も書いています(『裏切りのプログラム』他)。面白いことなら何でもOKのさすらいの企画屋です。 

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7093 2013/05/21 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング