반복문의 기본 개념은 '조건을 만족하는 동안(조건의 비교 연산이 참인 동안) 하위 블럭을 수행하라. 조건을 만족하지 않으면 하위 블럭을 수행하지 말고 다음 코드라인을 읽어라.'이다.
1. while
while 문의 구조는 아래와 같다.
while (/*조건*/) // 조건은 참이어야 하며, 조건이 거짓이 되는 순간 while문을 빠져나간다.
{
// 실행할 구문
}
int age = 5;
int num = 0;
while (age > num)
{
Console.WriteLine(num);
num++;
}
Console.WriteLine("End of the Code.");
출력 결과 :
0 // num = num + 1;
1 // num++ 에 의해 1 증가
2 // age > num 을 만족하므로 출력
3 // 5 > 3 의 비교 연산은 true 이므로 출력
4 // age 가 5 이므로, num 이 age 보다 미만의 수이므로 비교 연산이 참
End of the Code. // num = 5 이므로, age > num 을 만족하지 않아 더 이상 반복하지 않고 다음 문장 실행
2. do~while
while 의 조건을 만족하는 동안 do 블럭의 코드를 수행하나,
최초 실행 시, while 의 조건이 거짓(False)라도 do 블럭의 코드를 무조건 수행한다.
int age = 5;
int num = 0;
do
{
Console.WriteLine(num);
num++;
}
while (age == num); // False
Console.WriteLine("End of the Code.");
출력 결과 :
0
End of the Code.
3. For
int num = 5;
// 반복문에 사용할 변수 선언, 조건(변수가 5보다 작은 동안), 변수의 값을 증가시킨다.
for (int i = 0; i < num; i++) // 후위연산자
{
Console.WriteLine(i);
}
Console.WriteLine("End of the Code1.");
for (int i = 0;i < num; i += 2) // 할당 연산자, i = i + 2 와 동일
{
Console.WriteLine(i);
}
Console.WriteLine("End of the Code2.");
for (int i = 0; i < num; ++i) // 전위연산자
{
Console.WriteLine(i);
}
Console.WriteLine("End of the Code3.");
출력 결과 :
0
1
2
3
4
End of the Code1.
0
2
4
End of the Code2.
0
1
2
3
4
End of the Code3.
4. foreach
(이전 포스팅 참고)
[C#] 기초 문법 - array와 foreach문
string array 활용 string[] animal = {"dog", "cat", "bird"}; foreach(string kind in animal) { Console.WriteLine(kind); } // dog // cat // bird int array 활용 int[] familyAge = {20, 25, 45, 50}; int totalAge = 0; int num = 0; foreach(int age in familyAge
db-master.tistory.com
5. 주의 사항
반복문에서 조건은 마지막에 결국은 거짓의 조건이 성립하여야 반복을 마치고 블럭{}을 빠져나가 다음 코드를 수행한다.
만일 조건이 항상 참인 조건을 사용한다면, 무한루프(프로그램이 종료되지 않고 계속 반복되는 현상)에 빠지게 된다.
무한 루프로 인해 메모리가 터지는 예외 오류를 만나고 싶지 않다면, 반드시 마지막에 거짓이 되는 조건을 사용하여야 한다.
다음은 무한루프를 사용한 코드이다.
while (true)
{
Console.WriteLine("True");
}
while (1==1)
{
Console.WriteLine("True");
}
for (int i = 0; i == 0; i = 0)
{
Console.WriteLine("True");
}
'Language > C#' 카테고리의 다른 글
[C#] yield 키워드 (0) | 2023.09.03 |
---|---|
[C#] 중급 문법 - 데이터 타입 (Data Type), 데이터 클래스와 null 핸들링, 그리고 enum (0) | 2023.09.01 |
[C#] 기초 문법 - 조건문 (if, switch, 삼항 연산자) (0) | 2023.08.31 |
[C#] Console의 값 읽기 - ReadLine() & Read() (0) | 2023.08.31 |
[C#] Type Casting - Convert.ToType() (0) | 2023.08.30 |