Menu
CoddyTech

중첩 반복문

Coddy C# 여정의 기초 섹션에 포함된 레슨. 69개 중 46번째.

중첩 루프는 단순히 다른 루프 안에 있는 루프입니다. 내부 루프는 외부 루프의 각 반복마다 모든 반복을 완료합니다.

이에 대한 좋은 비유는 시계입니다. 각 시간(외부 루프)에 대해 분침(내부 루프)은 60분 주기를 모두 완료해야 합니다.

중첩 루프의 예:

int rows = 2;
int cols = 2;
for (int x = 0; x < rows; x++) {
	for (int y = 0; y < cols; y++) {
		Console.WriteLine(x + " " + y);
	}
}

// 이 코드는 다음을 출력합니다:
// 0 0
// 0 1
// 1 0
// 1 1

바깥쪽 루프(x)는 rows회 실행되며, 그때마다 안쪽 루프(y)는 cols회 실행됩니다. 즉, 안쪽 루프의 본문은 총 2 × 2 = 4회 실행됩니다. 각 루프에는 자체 카운터가 있습니다. 바깥쪽 루프가 실행될 때마다 y는 다시 0에서 시작하지만, rows와 cols는 그대로 유지되며 루프가 언제 멈출지만 알려 줍니다.

중첩 루프를 사용할 때 Console.Write()도 필요할 수 있습니다. 텍스트를 출력하고 새 줄로 이동하는 Console.WriteLine()과 달리, Console.Write()는 끝에 줄바꿈을 추가하지 않고 텍스트를 출력합니다. 이를 통해 같은 줄에 출력을 이어서 작성할 수 있습니다:

for (int y = 0; y < 4; y++) {
	Console.Write("* ");
}
Console.WriteLine();

// 다음이 출력됩니다:
// * * * * 

여기서 Console.Write()는 같은 줄에 계속 출력하고, 끝에 있는 Console.WriteLine()은 다음 줄로 이동합니다.

challenge icon

챌린지

초급

주어진 너비와 높이의 별표(*)로 된 직사각형을 출력하는 프로그램을 작성하세요.

입력: 두 정수: width와 height

예를 들어:

width = 5이고 height = 3이면 출력은 다음과 같습니다.

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

width = 4이고 height = 6이면 출력은 다음과 같습니다.

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

각 반복문마다 새로운 카운터를 사용하고(예를 들어 행에는 i, 한 행의 별표에는 j) 이를 height 또는 width와 비교하세요. height와 width 자체는 변경하지 마세요. 각 행마다 width가 다시 필요합니다.

직접 해보기

using System;

public class Program {
    public static void Main(string[] args) {
        int width = int.Parse(Console.ReadLine());
        int height = int.Parse(Console.ReadLine());
        // 아래에 코드를 작성하세요

    }
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨

직접 연습해 보세요: 온라인 C# 컴파일러