중첩 반복문
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()은 다음 줄로 이동합니다.
챌린지
초급주어진 너비와 높이의 별표(*)로 된 직사각형을 출력하는 프로그램을 작성하세요.
입력: 두 정수: 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());
// 아래에 코드를 작성하세요
}
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
직접 연습해 보세요: 온라인 C# 컴파일러