CodeZine(コードジン)

特集ページ一覧

「ループ処理のネスト」
~マンガでプログラミング用語解説

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

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2013/05/07 14:00

解説

 ループ処理はネストさせることができます。その際は、ループを管理する変数は、入れ子のそれぞれで別の物にしなければ、意図しない動作になってしまいます。

例)同じにしてしまった場合
// 3×3で9回処理をしたい
for (i = 0; i < 3; i ++) {
    for (i = 0; i < 3; i ++) {
        document.write(i);
    }
}
出力結果)
012
例)異なるものにした場合
// 3×3で9回処理をしたい
for (i = 0; i < 3; i ++) {
    for (j = 0; j < 3; j ++) {
        document.write(i);
    }
}
出力結果)
000111222

 ループ処理のネストは、多次元配列と相性がよいです。多くの場合で、多次元配列のネストした値を利用する目的で使用されます。

 また、ループ処理がネストした場合「break」や「continue」は現在処理しているループに対して作用します。

例)現在処理しているループに作用
for (~) {
    for (~) { ←このループに作用
        処理1
        break;  外へ
        処理2
    }
}

 もし、外側のループに対して「break」や「continue」を使いたい場合は、ラベルを使って対象を指定します。

例)現在処理しているループに作用
outer:
for (~) { ←このループに作用
    for (~) {
        処理1
        break outer;  外へ
        処理2
    }
}

サンプル

 ループ処理のネストを使った処理を、JavaScriptで簡単に書いてみます。

<html>
    <head>
        <title>「ループ処理のネスト」のサンプル</title>
    </head>
    <body>
        <pre><script type="text/javascript">
            // 二次元配列の初期化
            var arr = [
                [0, 1, 2],
                [3, 4, 5],
                [6, 7, 8],
            ];

            // ループ処理のネスト
            for (var i = 0; i < arr.length; i ++) {
                var sum = 0;
                for (var j = 0; j < arr[i].length; j ++) {
                    var cell = arr[i][j];
                    sum += cell;
                    document.write(cell + ", ");
                }
                document.write("合計 " + sum + "\n");
            }
        </script></pre>
    </body>
</html>
出力結果)
0, 1, 2, 合計 3
3, 4, 5, 合計 12
6, 7, 8, 合計 21
フィードバックお待ちしております!

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



  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

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

もっと読む

著者プロフィール

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

    クロノス・クラウン合同会社 代表社員 http://crocro.com/ オンラインソフトを多数公開。 プログラムを書いたり、ゲームを作ったり、記事を執筆したり、マンガを描いたり、小説を書いたりしています。 「めもりーくりーなー」でオンラインソフト大賞に入賞。最近は、小説家デビューして小説...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5