for (초기화; 조건식; 증감연산)
초기화 → 조건 확인 → 블럭 실행 → 증감 의 흐름으로 반복 실행
i는 지역 변수로, for문 블럭 안에서만 사용 가능
for (int i = 0; i < 4; i++) // 4번 반복
{
Console.WriteLine($"{i}번째 문장입니다.");
}
📌 출력:
0번째 문장입니다.
1번째 문장입니다.
2번째 문장입니다.
3번째 문장입니다.
for (int j = 3; j >= 0; j--)
{
Console.WriteLine($"{j}번째 문장입니다.");
}
📌 출력:
3번째 문장입니다.
2번째 문장입니다.
1번째 문장입니다.
0번째 문장입니다.
for (int i = 0; i < 10; i++)
{
if (i % 2 == 0)
{
Console.WriteLine($"{i}는 짝수입니다.");
}
else
{
Console.WriteLine($"{i}는 홀수입니다.");
}
}
📌 출력:
0는 짝수입니다.
1는 홀수입니다.
2는 짝수입니다.
...
9는 홀수입니다.
반복문 안에 또 다른 반복문이 있는 형태
외부 반복문 1회 → 내부 반복문 전체 실행
중첩이 깊을수록 시간 복잡도 증가 →O(N^n)
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
Console.WriteLine($"i의 값: {i}, j의 값: {j}");
}
}
📌 출력:
i의 값: 0, j의 값: 0
i의 값: 0, j의 값: 1
i의 값: 0, j의 값: 2
i의 값: 1, j의 값: 0
i의 값: 1, j의 값: 1
i의 값: 1, j의 값: 2
for (int dan = 1; dan <= 9; ++dan)
{
Console.WriteLine($"{dan}단\n");
for (int num = 1; num <= 9; ++num)
{
Console.WriteLine($"{dan} * {num} = {dan * num}");
}
Console.WriteLine("\n---------------------------------\n");
}
📌 출력 (일부 생략):
1단
1 * 1 = 1
...
1 * 9 = 9
---------------------------------
2단
2 * 1 = 2
...
while(조건식)
조건식이true인 동안 반복 실행
무한 루프 주의 필요
while (조건식)
{
// 반복으로 실행할 코드
}
블럭을 최소 한 번 실행 후, 조건에 따라 반복
while뒤에 반드시세미콜론(;)붙여야 함
do
{
// 반복으로 실행할 코드 (최소 1회 실행)
}
while (조건식);
int select;
do
{
Console.WriteLine("1 ~ 5 사이의 수를 입력하세요");
string input = Console.ReadLine();
int.TryParse(input, out select);
}
while (select >= 1 && select <= 9);
가장 가까운 반복문을 즉시 종료
int water = 1000;
while (water != 0)
{
Console.WriteLine("물을 100ml 마십니다.");
water -= 100;
Console.WriteLine($"잔여량은 {water}ml 입니다.\n");
break;
}
📌 출력:
물을 100ml 마십니다.
잔여량은 900ml 입니다.
반복문의 이번 루프만 건너뛰고, 다음 루프로 이동
반복문 전체 종료는 아님
for (int i = 0; i < 7; i++)
{
if (i % 2 != 0)
{
continue; // 홀수 건너뛰기
}
Console.WriteLine($"{i}번 출력입니다.");
}
📌 출력:
0번 출력입니다.
2번 출력입니다.
4번 출력입니다.
6번 출력입니다.