Menu
Coddy logo textTech

ネストされたループ

CoddyのC++ジャーニー「基礎」セクションの一部 — レッスン 48/74。

入れ子になったループ(ネストされたループ)は、単に別のループの中にあるループのことです。内側のループは、外側のループの1回の反復ごとに、そのすべての反復を完了します。

これを例えるのに適しているのが時計です。1時間(外側のループ)ごとに、分針(内側のループ)は60分のサイクルを完全に一周しなければなりません。

二重ループの例:

for (int x = 0; x < 2; x++) {
	for (int y = 0; y < 2; y++) {
		std::cout << x << " " << y << std::endl;
	}
}
// 次のように出力されます:
// 0 0
// 0 1
// 1 0
// 1 1

外側のループ (x) は2回実行され、その各回に対して、内側のループ (y) が2回実行されます。

challenge icon

チャレンジ

初心者

1 から n - 1 までの数を使用して、合計が n になるすべての数のペアを見つけるプログラムを作成してください。
プログラムは、逆順の重複ペアを含む、考えられるすべての組み合わせを表示する必要があります。例えば、"1 5" と "5 1" は同じペアの異なる配置とみなされるため、両方を表示する必要があります。合計が n になる場合は、同じ数同士をペアにすることもできます。

例えば n = 6 の場合、出力は以下のようになります:

1 5
2 4
3 3
4 2
5 1

理由:

1 + 5 = 6
2 + 4 = 6
3 + 3 = 6
4 + 2 = 6
5 + 1 = 6

チートシート

入れ子(ネスト)になったループとは、別のループの中にあるループのことです。外側のループが1回繰り返されるごとに、内側のループはそのすべての反復を完了します。

基本的な入れ子構造のループ:

for (int x = 0; x < 2; x++) {
	for (int y = 0; y < 2; y++) {
		std::cout << x << " " << y << std::endl;
	}
}
// 出力:
// 0 0
// 0 1
// 1 0
// 1 1

外側のループが実行され、外側のループの各反復に対して、内側のループはそのすべての反復を実行します。

自分で試してみよう

#include <iostream>

int main() {
    int n;
    std::cin >> n;
    // 以下にコードを記述してください

    return 0;
}
quiz icon腕試し

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

基礎のすべてのレッスン