C, C++, Java 등 다른 프로그래밍 언어와 마찬가지로 C#에서도 중첩 반복문(nested loop)을 활용하면 다양한 별(*) 패턴을 손쉽게 출력할 수 있습니다. 별 패턴 프로그램은 반복문의 흐름과 조건 제어를 익히기에 가장 좋은 연습 예제 중 하나로 꼽힙니다.

이번 글에서는 대표적인 별 패턴 네 가지를 예제 코드와 실행 결과와 함께 하나씩 살펴보겠습니다.
1. 왼쪽 정렬 직각삼각형 패턴
가장 기본적인 형태로, 행 번호가 늘어날수록 별이 한 개씩 추가됩니다. 바깥쪽 for 문이 행을 제어하고, 안쪽 for 문이 해당 행에 출력할 별의 개수를 담당합니다.
예제
using System.IO;
using System;
class Program {
static void Main() {
for (int i = 1; i <= 6; ++i) {
for (int j = 1; j <= i; ++j) {
Console.Write("*");
}
Console.WriteLine();
}
}
}
출력 결과
* ** *** **** ***** ******
2. 오른쪽 정렬 직각삼각형 패턴
별을 출력하기 전에 공백을 먼저 찍어 삼각형이 화면 오른쪽으로 정렬되도록 만든 패턴입니다. 각 행에서 (전체 행 수 − 현재 행)만큼 공백을 출력한 뒤 별을 이어서 찍습니다.
예제
using System.IO;
using System;
class Program {
static void Main() {
int i, j, k;
int n = 6;
// 패턴을 출력하는 반복문
for (i = 1; i <= n; i++) {
for (j = 1; j <= n - i; j++) {
Console.Write(" ");
}
for (k = 1; k <= i; k++) {
Console.Write("*");
}
Console.WriteLine("");
}
Console.ReadLine();
}
}
출력 결과
*
**
***
****
*****
******
3. 역삼각형 패턴
첫 번째 패턴과 반대로, 첫 행에 별이 가장 많고 아래로 내려갈수록 한 개씩 줄어드는 형태입니다. 바깥쪽 반복문의 카운터를 감소시키는 방식으로 간단하게 구현할 수 있습니다.
예제
using System.IO;
using System;
class Program {
static void Main() {
for (int i = 6; i >= 1; --i) {
for (int j = 1; j <= i; ++j) {
Console.Write("*");
}
Console.WriteLine();
}
}
}
출력 결과
****** ***** **** *** ** *
4. 다이아몬드(마름모) 패턴
행마다 공백과 별의 개수를 조절해 위쪽 절반은 넓어지고 아래쪽 절반은 좁아지는 마름모 모양을 완성합니다. 중간 지점을 기준으로 공백은 줄였다 늘리고, 별의 개수는 늘렸다 줄이는 방식으로 동작합니다.
예제
using System.IO;
using System;
class Demo {
static void Main() {
int a = 1, spaces, k = 6, i = 0, j = 0;
spaces = k - 1;
for(i = 1; i < k * 2; i++) {
for(j = 1; j <= spaces; j++) {
Console.Write(" ");
}
for(j = 1; j < a * 2; j++) {
Console.Write("*");
}
Console.WriteLine("");
if(i < k) {
spaces--;
a++;
} else {
spaces++;
a--;
}
}
}
}
출력 결과
*
***
*****
*******
*********
***********
*********
*******
*****
***
*
이처럼 중첩 반복문 안에서 공백과 별의 출력 횟수만 조절하면 피라미드, 모래시계 등 다양한 응용 패턴도 자유롭게 만들 수 있습니다. 각 예제에서 반복 변수가 어떻게 변하는지 직접 추적해 보면 패턴 로직을 훨씬 빠르게 이해할 수 있습니다.