Menu
CoddyTech

ネストしたループ

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

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

これをうまくたとえると時計です。各時間(外側のループ)ごとに、分針(内側のループ)は60分のサイクルをひと回りしなければなりません。

入れ子になったループの例:

int rows = 2;
int cols = 2;
for (int x = 0; x < rows; x++) {
    for (int y = 0; y < cols; y++) {
        System.out.println(x + " " + y);
    }
}

// 出力は次のようになります:
// 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が再び必要になります。

自分で試してみよう

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int width = scanner.nextInt();
        int height = scanner.nextInt();
        // 以下にコードを記述してください

    }
}
quiz icon腕試し

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

基礎のすべてのレッスン

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