for文 - 入れ子(ネスト)多階層の繰り返し処理
当ページのリンクには広告が含まれています。
スポンサーリンク
前回は「for文の基本構文」を紹介しました。
繰り返し処理は多階層にすることができるので、ここではその方法をみていきます。
入れ子(ネスト) - 多階層の繰り返し
多階層の繰り返し処理(入れ子、ネストとも言います)はよく使う構文なので、ササッと使えるようにしておきましょう。
多階層の繰り返しでは次のように
for(i=0;i<10;++i){ // カウンタ「i」の繰り返し処理 for(j=0;j<10;++j){ // カウンタ「j」の繰り返し処理 } }
カウンタ「i」の繰り返し処理の中に……カウンタ「j」の繰り返し処理をネストしています。
実際に具体例(プログラム)で、動きを確認しましょう。
サンプルプログラム
多階層の繰り返し処理のカウンタ変数「i」と「j」を出力するサンプルプログラムです。
#include <stdio.h> int main(void){ /* カウンタ変数の宣言 */ int i, j; /* 多階層の繰り返し処理 */ for(i=0;i<10;++i){ for(j=0;j<10;++j){ /* カウンタを表示 */ printf("%d %d\n", i, j); } } return 0; }
実行結果です。
0 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 3 0 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 … 略 …
このような実行結果になります。
外側のループのカウンタ「i」が1つ増加する間に内側のループのカウンタ「j」がひと回り(0〜9)します。
数の「1の位」「10の位」と同じように動くことがわかりますね。
次はfor文と同じく繰り返し処理を実行する構文「while文」をみていきます。