반복문 ( Loop Statements )
반복문(Loop Statement) 은 특정 코드 블록을 조건에 따라 여러 번 실행할 수 있도록 해주는 구문이다.
무한 루프에 빠졌다 라는 말을 들어본 적 있을 거다.
바로 반복문이 그 주인공이다.
C#에서는 크게 for, while, do-while, foreach 네 가지 반복문을 제공한다.
for
가장 많이 쓰이는 반복문이다.
초기식 → 조건식 검사 → 코드 실행 → 증감식 순으로 진행된다.
for(초기식; 조건식; 증감식)
{
// 반복할 내용
}
이런 간단한 구조로 되어있다.
저것만 보면 이게 뭔가 싶으니 실제로 사용되는 코드를 보도록 하자.
using System;
namespace HelloWorld
{
internal class Program
{
static void Main()
{
int counter = 0; // 숫자를 세기 위한 변수
int repeatCount = 22; // 반복하고자 하는 횟수
for (counter = 0; counter < repeatCount; counter++)
{
Console.WriteLine($"담비꺼야!!! {counter} 번 째 실행");
}
}
}
}

이해하기 쉽도록 변수로 따로 빼서 만들었지만
using System;
namespace HelloWorld
{
internal class Program
{
static void Main()
{
for (int i = 0; i < 25; i++)
{
Console.WriteLine($"담비꺼야!!! {i} 번 째 실행");
}
}
}
}
이렇게 for문 안에서 직접 값을 넣어서 구성할 수도 있다.
while
조건이 참인 동안 반복 실행하는 반복문으로, 처음부터 거짓이면 한 번도 실행되지 않고 넘어간다.
while (이게 참인 동안)
{
// 이 안을 실행
}
using System;
namespace HelloWorld
{
internal class Program
{
static void Main()
{
int i = 0;
while (i < 25)
{
Console.WriteLine($"담비꺼야!!! {i} 번 째 실행");
i++;
}
}
}
}

쉽다.
do-while
using System;
namespace HelloWorld
{
internal class Program
{
static void Main()
{
int i = 26;
do
{
Console.WriteLine("핑크색 싫어 파란색 줘");
}
while (i < 25);
}
}
}

i가 25 보다 커서 처음부터 조건이 맞지 않음에도 최초 1번은 실행되는 걸 볼 수 있다.
foreach
컬렉(Collection), 배열 등을 순회할 때 사용한다.
인덱스를 따로 신경 쓰지 않아도 되는 편리한 기능이다.
using System;
namespace HelloWorld
{
internal class Program
{
static void Main()
{
string[] iceCream = { "파란거", "빨간거", "하얀거", "검은거", "고혈당", "당뇨병" };
foreach (string str in iceCream)
{
Console.WriteLine(str);
}
}
}
}
iceCream 이라는 배열을 탐색해서 안의 모든 str에 대해 특정 행동을 할 수 있다.
이걸 for문으로 아래처럼 구현할 수도 있다.
using System;
namespace HelloWorld
{
internal class Program
{
static void Main()
{
string[] iceCream = { "파란거", "빨간거", "하얀거", "검은거", "고혈당", "당뇨병" };
for (int i = 0; i < iceCream.Length; i++)
{
Console.WriteLine(iceCream[i]);
}
}
}
}
Break / Continue
반복문의 제어 키워드다
break; 는 실행 즉시 반복문을 종료하는 것이고
continue; 는 이번 회차를 건너 뛰고 다음 반복으로 이동하는 것이다.
예시로 알아보자
using System;
namespace day3
{
internal class Program
{
static void Main()
{
// 반복문 while 의 break
int increasingNum = 1;
int endPoint = 100000;
while (true)
{
increasingNum *= 2;
Console.WriteLine(increasingNum);
if (increasingNum > endPoint)
{
Console.WriteLine($"{endPoint} 초과로 종료");
break; // break를 만난 시점에서 while (true)여도 반복문을 종료해버림
}
}
}
}
}
위와 같이 while (true)로 설정한 경우, 해당 반복문은 무한 루프로 실행된다.
하지만 조건문 등을 이용해 특정 상황에서 break를 실행되게 한다면 while문은 실행을 멈추게 되는 것이다.
using System;
namespace day3
{
internal class Program
{
static void Main()
{
// 반복문 while의 continue
int count = 0;
while (true)
{
count++;
if (count % 2 == 0) // 짝수일 때
{
continue; // 이 아래를 실행하지 말고 다음 루프를 실행
}
Console.WriteLine(count); // 짝수인 경우 이 라인을 실행하지 않으므로 홀수만 출력 됨
if (count > 50)
{
break; // 50 보다 커지면 종료
}
}
}
}
}
이렇게 continue를 이용해 50 이하의 홀수만 출력하는 코드를 작성해 보았다.
반복문은 매우 편리하고 유용한 기능이지만 잘못 사용하면 테러 프로그램이 될 수 있으니 주의하자.
또한 반복문 속에 반복문을 넣어 사용하는 방식도 가능하다.
using System;
namespace HelloWorld
{
internal class Program
{
static void Main()
{
// 반복문 속의 반복문
for(int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
Console.WriteLine($"i는 현재 {i}, j는 현재 {j}, {i * 10 + j}번째 실행 중 ");
}
}
}
}
}

어디서 많이 본 모양일 것이다.
그렇다 이거로 구구단을 출력할 수도 있다.
using System;
namespace day3
{
internal class Program
{
static void Main()
{
int inputNum = 0;
while (inputNum > 9 || inputNum == 0 || inputNum < 0)
{
Console.WriteLine("출력하고자 하는 구구단(1~9의 숫자)을 입력해주시길 바랍니다.");
int.TryParse(Console.ReadLine(), out inputNum);
}
for (int i = 1; i <= 9; i++)
{
Console.WriteLine($"{inputNum} x {i} = {inputNum * i}");
}
}
}
}

지금까지 배운 내용을 이용해 입력한 숫자에 맞는 구구단을 출력하는 프로그램을 작성해보았다.
이를 응용하여 다음 글에서는

그 유명한 별 찍기를 진행해 볼 예정이다.
'C#' 카테고리의 다른 글
| C# - 콘솔로 별 찍기 (다이아몬드 편) (0) | 2025.09.08 |
|---|---|
| C# - 콘솔로 별 찍기 (삼각형 편) (0) | 2025.09.04 |
| C# - 조건문 ( Conditional Statements ) (0) | 2025.09.04 |
| C# - 형변환 ( type casting ) (0) | 2025.09.04 |
| C# - 연산자 (0) | 2025.09.04 |