【C言語】for文を2つ使って2重ループを作る方法

この記事では、C言語のプログラミングにおいて、for文を使った2重ループの基本構文や具体的な例、注意点について解説します。

2重ループを使うことで、99の表を表示したり、2次元配列の要素を全て表示したりすることができます。

また、ループ変数のスコープやネストの深さにも注意が必要です。

初心者の方にもわかりやすく解説していきますので、ぜひ参考にしてください。

目次から探す

for文を使った2重ループの基本構文

C言語では、for文を使って2重ループを作ることができます。

2重ループとは、内側のループと外側のループを組み合わせて使用することで、複数の処理を繰り返し実行することができるプログラムの構造です。

内側のループと外側のループ

2重ループでは、内側のループと外側のループの2つのループがあります。

内側のループは、外側のループの1回の実行ごとに複数回繰り返されます。

これにより、内側のループの処理が外側のループの回数分だけ実行されることになります。

ループ変数の初期化と条件式

2重ループでは、内側のループと外側のループそれぞれにループ変数を使用します。

ループ変数は、ループの制御に使用される変数であり、ループの開始時に初期化されます。

内側のループの初期化と条件式は、外側のループの実行ごとに評価されます。

内側のループの初期化は、外側のループの開始時に行われ、内側のループの条件式は、外側のループの実行ごとに評価されます。

ループ変数の更新

2重ループでは、内側のループの処理が終了すると、内側のループのループ変数を更新する必要があります。

これにより、内側のループが次のループの開始時に正しい値で初期化されます。

ループ変数の更新は、内側のループの処理の最後に行われます。

内側のループのループ変数を更新することで、次のループの開始時に正しい値で初期化され、繰り返し処理が正しく行われます。

2重ループを使うことで、行列の要素をすべて処理する、99の表を表示するなど、さまざまな処理を効率的に実現することができます。

2重ループの具体例

99の表を表示するプログラム

99の表は、1から9までの数字を掛け合わせた結果を表にしたものです。

これをC言語の2重ループを使って表示するプログラムを作成してみましょう。

#include <stdio.h>
int main() {
    int i, j;
    for (i = 1; i <= 9; i++) {
        for (j = 1; j <= 9; j++) {
            printf("%2d ", i * j);
        }
        printf("\n");
    }
    return 0;
}

このプログラムでは、外側のループで1から9までの数字を順番に取り出し、内側のループで1から9までの数字と掛け合わせた結果を表示しています。

内側のループが1周するごとに改行を行っているため、99の表が見やすくなっています。

実行結果は以下のようになります。

 1  2  3  4  5  6  7  8  9 
 2  4  6  8 10 12 14 16 18 
 3  6  9 12 15 18 21 24 27 
 4  8 12 16 20 24 28 32 36 
 5 10 15 20 25 30 35 40 45 
 6 12 18 24 30 36 42 48 54 
 7 14 21 28 35 42 49 56 63 
 8 16 24 32 40 48 56 64 72 
 9 18 27 36 45 54 63 72 81 

2次元配列の要素を全て表示するプログラム

2次元配列は、行と列の2次元のデータ構造です。

C言語の2重ループを使って、2次元配列の要素を全て表示するプログラムを作成してみましょう。

#include <stdio.h>
int main() {
    int array[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
    int i, j;
    for (i = 0; i < 3; i++) {
        for (j = 0; j < 3; j++) {
            printf("%d\t", array[i][j]);
        }
        printf("\n");
    }
    return 0;
}

このプログラムでは、3行3列の2次元配列を宣言し、その要素を順番に表示しています。

外側のループで行を、内側のループで列を指定して、要素を表示しています。

実行結果は以下のようになります。

1	2	3	
4	5	6	
7	8	9

2次元配列の要素を全て表示する場合、外側のループで行を指定し、内側のループで列を指定することで、全ての要素を順番に表示することができます。

※ 99の表を表示するプログラムでは、printf関数\tを使ってタブ文字を表示しています。

これにより、99の表が見やすくなります。

また、2次元配列の要素を表示するプログラムでは、2次元配列の初期化方法を示していますが、実際のプログラムでは他の方法で2次元配列を初期化することもできます。

1 2
目次から探す