Menu
Coddy logo textTech

ネストしたループ

CoddyのCジャーニー「Fundamentals」セクションの一部 — レッスン 43/63。

二重ループ(入れ子のループ)とは、別のループの中に配置されたループのことです。外側のループが1回繰り返されるたびに、内側のループが最後まで実行されます。

3回実行される外側のループを作成します:

for (int i = 0; i < 3; i++) {
    // ここに外側のループのコードを記述します
}

外側のループの各反復に対して2回実行される内側のループを追加します:

for (int i = 0; i < 2; i++) {
    for (int j = 0; j < 3; j++) {
        printf("%d,%d ", i, j);
    }
    printf("\n");
}

出力は次のようになります:

0,0 0,1 0,2 
1,0 1,1 1,2 

内側のループが、外側のループが次の反復に移動する前に、その反復を完了することに注目してください。

challenge icon

チャレンジ

簡単

ユーザーから入力された行数と列数に基づいて、アスタリスク("*")の長方形パターンを表示するプログラムを作成してください。

プログラムは以下のことを行う必要があります:

  1. ユーザーから2つの整数(rows と columns)を読み取ります。
  2. 入れ子になったループを使用して、外側のループで行を、内側のループで列を処理し、アスタリスクの長方形パターンを表示します。
  3. 各行の後に改行を出力します。

例えば、入力が 3 行 4 列の場合、出力は以下のようになります:

**** 
**** 
****

チートシート

ネストされたループ(入れ子構造のループ)とは、別のループの内側に配置されたループのことです。外側のループが1回繰り返されるごとに、内側のループが最後まで実行されます。

基本的なネストされたループの構造:

for (int i = 0; i < outer_limit; i++) {
    for (int j = 0; j < inner_limit; j++) {
        // 内側のループのコード
    }
    // 外側のループのコード
}

出力例:

for (int i = 0; i < 2; i++) {
    for (int j = 0; j < 3; j++) {
        printf("%d,%d ", i, j);
    }
    printf("\n");
}

出力:

0,0 0,1 0,2 
1,0 1,1 1,2

外側のループが次の反復に進む前に、内側のループはそのすべての反復を完了します。

自分で試してみよう

#include <stdio.h>

int main() {
    int rows, columns;
    scanf("%d", &rows);
    scanf("%d", &columns);
    
    // ここにパターンを出力するためのコードを記述してください
    
    return 0;
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

Fundamentalsのすべてのレッスン