多重ループここまでで作成したプログラムは、単純な繰り返しを行うだけでしたが、少し複雑に、「繰り返しの中でさらに繰り返しを行う」こともできます。このようなループ処理のネスト構造を、多重ループと言います。多重ループは、ネストの深さに応じて、二重ループ、三重ループ、・・・と増やすことが出来ます。本節では、この多重ループについて解説を行なっていきます。・for文内にwhile文を書く・while文内にfor文を書く・while文内にdo-while文を書くといったように、違う種類のループ文をネストすることもできます。ここでは、for文内にfor文を書いた二重ループについて解説します。for文の二重ループの基本構文は下記のようになります。7.5.1のフローチャートで確認して下さい。二重ループのフローチャートそれでは、実際にプログラムを作成して、動きを確認していきましょう。for文の二重ループの動きを確認するプログラムこのプログラムでは、for文の処理が1回実行される毎にメッセージを表示します。プログラムを作成して、二重ループの動きを確認しましょう。記述のなかで、二重ループに当たる部分は、7~17行目です。外側のループの内部処理に、内側のループが含まれています。内側のfor文は、外側のfor文の内部処理の一部であり、外側の内部処理が1回行われる毎に内側のfor文は繰り返し処理を行います。内側のループの処理内容11行目で宣言した変数jのスコープは、11~13行目のみです。内側のループを抜ける度に無効となり、外側のループを繰り返す度に初期化しています。外側のループの繰り返し処理が一回行われた時、内側のループがどのような動きをしているかを考えながら、次の表でこのプログラムの処理の流れを追ってみて下さい。先ほどの表の「内側のfor文」のカウンタ変数の初期化に注目して下さい。表で順序と書かれた列の○4、○16、○28では、内側のfor文のカウンタ変数が初期化されています。内側のfor文が最初から実行されているということです。内側のループは、外側のループの内部処理が1回行なわれる間に全ての処理を終えています。内側のループ文は、外側のループ文の内部処理とも言えます。そのため、外側のループが処理を繰り返した回数分、内側のループの全体が実行されます。九九を表示するプログラム二重ループの理解を深めるために、今度は九九(くく)の答えを表示するプログラムを作成してみましょう。ループになっているのは、7~17行目です。外側のループは九九の「段」を表し、内側のループは各段の1~9までの「掛ける数」を示しています。それぞれのfor文と、表示される文字列の流れは、次のページの表を参考にして下さい。外側のループは、九九の段数を制御しています。内部の処理で、段数の見出し表示、内側のループ(値の表示)、そして改行を行います。内側のループの処理内容ここでは、外側のループのカウント変数dan(九九の段数)と内側のループのカウント変数count(九九の段数に掛ける数)を掛けて、毎回1つずつ値を表示しています。内側のループを抜けると、九九の段が1つ完成します。外側のループの1回目、つまり1の段を全て表示させるのが内側のループの役割です。1の段を全て表示させたということは、内側のループが終了したということであり、次に外側のループの内部処理の2回目(2の段)が始まります。外側のループの中に入った内側のループは、外側のループが1回の処理を行う度に繰り返し処理を行います。