Menu
CoddyTech

ネストされたループ

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

入れ子のループとは、単に別のループの中にあるループです。内側のループは、外側のループの1回の反復ごとに、すべての反復を完了します。

これを時計にたとえると分かりやすいでしょう。1時間(外側のループ)ごとに、分針(内側のループ)は60分のサイクルを最後まで完了しなければなりません。

ネストしたループの例:

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

外側のループ(x)はrows回実行され、そのたびに内側のループ(y)はcols回実行されます。各ループにはそれぞれ独自のカウンターがあります。外側のループが実行されるたびにyは0から再び始まり、rowsとcolsは変わらず、ループをいつ終了するかを示すだけです。

challenge icon

チャレンジ

初心者

指定された幅と高さのアスタリスク(*)でできた長方形を出力するプログラムを書きましょう。

入力:2つの整数:width と height(スターターコードですでに読み込まれています)。

例:

width = 5、height = 3 の場合、出力は次のようになります:

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

width = 4、height = 6 の場合、出力は次のようになります:

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

各ループには新しいカウンターを使い(たとえば、行には i、1行のアスタリスクには j)、それを height または width と比較してください。height と width 自体は変更しないでください。各行で width が再び必要になります。

自分で試してみよう

#include <iostream>

int main() {
    int width, height;
    std::cin >> width >> height;
    // 以下にコードを書いてください

    return 0;
}
quiz icon腕試し

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

基礎のすべてのレッスン

自分で練習してみよう: C++オンラインコンパイラ