SHOEISHA iD

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

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

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

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

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

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

解説

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

例)同じにしてしまった場合
// 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などでお気軽に編集部までお寄せください。よろしくお願いいたします。

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

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
マンガで分かるプログラミング用語辞典連載記事一覧

もっと読む

この記事の著者

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

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

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

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

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/7048 2013/05/07 14:00

イベント

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

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

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

メールバックナンバー