[ for문 ]
for (초기화; 조건; 변화)
{
실행 내용
}
어떤 일을 여러 번 실행할 때 사용한다.
초기화는 맨 처음에 주어지는 값이고, 조건은 언제까지 for문을 작동할지 알려주는 값이고, 변화는 얼마만큼 데이터를 변화시킬지 알려주는 값이다.
for문이 작동되면 초기화 값에서부터 조건을 만족하는한 계속 반복하며 데이터를 변화시킨다.
for (int i = 1; i <= 10; i++)
{
Console.WriteLine(i);
}
//실행결과
1
2
3
4
5
6
7
8
9
10
위 코드는 1부터 세기 시작, 10까지 세기, 1씩 증가의 의미를 담고있다. 조건을 만족하지 않을 때까지 실행한다.
[ while문 ]
while (조건)
{
실행 내용
}
for문과 동일하게 어떤 일을 여러 번 실행한다.
while문은 조건만 있으면 실행이 가능하며, 조건을 만족하는한 계속해서 실행한다.초기화는 while문 이전에 작성하며, 변화는 while문 내부 또는 외부에서 작성할 수 있다. 따라서 유저의 인풋을 기다리는 것과 같이 주로 외부의 영향을 받을 때 사용한다.
int i = 1;
while (i <= 10)
{
Console.WriteLine(i);
i++;
}
//실행결과
1
2
3
4
5
6
7
8
9
10
위 코드는 1부터 세기 시작, 10까지 세기, 1씩 증가의 의미를 담고있다. 조건을 만족하지 않을 때까지 실행한다.
[ do while ]
do
{
실행 내용
}
while (조건);
조건 상관없이 무조건 1회 실행 후, while문과 동일하게 조건을 만족하는한 계속해서 실행한다.
int i = 9;
do
{
Console.WriteLine(i);
i++;
}
while (i <= 10);
//실행결과
9
10
9부터 세기 시작하며 do 안의 내용은 일단 1회 실행한다. 따라서 9가 출력되고 1이 증가하여 i는 10이 된다.
while의 조건은 10까지 세는 것이므로 1회 더 실행한 후 종료한다.
int i = 12;
do
{
Console.WriteLine(i);
i++;
}
while (i <= 10);
12부터 세기 시작하며 do 안의 내용을 일단 1회 실행한다. 따라서 12가 출력되고 1이 증가하여 i는 10이 된다.
while의 조건은 10까지 세는 것이므로 조건을 만족하지 않아 더 실행하지 않고 종료한다.
int num = 5;
if (num > 0)
Console.WriteLine(num+"은(는) 0보다 큽니다."); //5은(는) 0보다 큽니다.
for (int i = 20; i <= 30; i++)
Console.Write(i+" "); //20 21 22 23 24 25 26 27 28 29 30
조건문과 반복문 같이 중괄호를 사용하는 문법에서 실행 내용이 한 줄이라면 중괄호를 생략할 수 있다.
또한 반복문에서 주의할 점은 조건을 잘못 설정하면 무한루프에 빠질 수 있다는 것이다. 무한루프는 프로그램을 종료하기 전까지 계속해서 무한정 실행되며, 프로그램 중단과 같은 문제 야기할 수 있으므로 주의해야 한다.
[ break ]
break는 실행되고 있던 구문들을 즉시 종료시킨다. 크게 switch case문과 for문에서 사용된다.
int num = 2;
switch(num)
{
case 1:
Console.WriteLine("피자");
break;
case 2:
Console.WriteLine("치킨");
break;
case 3:
Console.WriteLine("햄버거");
break;
} //치킨
switch case문은 각 구문을 종료할 때 break를 사용한다.
for (int num = 1; num < 5; num++)
{
Console.WriteLine(num + "번 입니다.");
if(num == 3)
{
break;
}
}
//실행결과
1번 입니다.
2번 입니다.
3번 입니다.
for문은 반복을 종료하고 빠져나올 때 break를 사용한다.
for (int num = 1; num < 4; num++)
{
Console.WriteLine("No. " + num);
for (int i = 1; i < 4; i++ )
{
Console.WriteLine(+i + "번입니다."); //break와 가장 가까운 반복문
if (num == 2)
{
break;
}
}
}
//실행결과
No. 1
1번입니다.
2번입니다.
3번입니다.
No. 2
1번입니다.
No. 3
1번입니다.
2번입니다.
3번입니다.
중첩 for문에서는 break와 가장 가까이에 있는 반복문만 종료되고, 다른 반복문은 계속해서 실행된다.
위 코드에서는 두 번째 반복문이 break와 가장 가까이에 있다. 그래서 num이 2일 때, 두 번째 반복문이 1회 실행되고 if문으로 넘어가서 break가 작동되었기 때문에 두 번째 반복문은 실행이 종료됐다. 그대로 빠져나가 다시 첫 번째 반복문이 실행됐다.
[ continue ]
continue는 반복문에서 해당 반복을 건너뛰고 다음 반복으로 넘어간다.
for (int num = 1; num < 4; num++)
{
if (num == 2)
{
continue;
}
Console.WriteLine(num + "번입니다.");
}
//실행결과
1번입니다.
3번입니다.
num이 2일 때 해당 반복을 건너 뛰었기 때문에 2번입니다.는 출력되지 않았다.
'Coding > C#' 카테고리의 다른 글
C# 배열 생성 및 데이터 저장, 접근, 배열 리터럴, 인덱스 (0) | 2024.04.13 |
---|---|
C# 반복문 연습 문제 (0) | 2024.04.13 |
C# 조건문 연습 문제 (0) | 2024.04.13 |
C# 조건문 if, else if, else, switch case, 조건부 논리 연산자 (0) | 2024.04.03 |
C# 산술 연산, 논리 연산, 조건부 논리 연산 (1) | 2024.04.03 |