今日の人気記事

  1. 閏年(うるうどし)を判定する
  2. 開発環境の構築
  3. 配列の数値の平均値を計算する
  4. 入力した文字がアルファベットか数字かを判定する
  5. コンパイルと実行 - GNU Compiler Collection(gcc) - Linux環境

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文」をみていきます。

基本構文 の人気記事

  1. printf関数の変換指定子
  2. int main(void) - プログラムの基本
  3. 変数の値を出力 - printf 関数
  4. while文 - 繰り返し処理
  5. continue文 - ループをスキップ
  6. 条件演算子(3項演算子)「? :」
  7. 関数のプロトタイプ宣言
  8. (前置・後置)インクリメント演算子, ++
  9. else if文 - 複数の条件式 - 条件分岐
  10. scanf関数 - 数値の入力

関連記事(一部広告含む)