제어문
- 프로그램의 시작점(entry point) ~ 프로그램 종착점(end point) : 하나의 흐름
- 순차적인 실행 -> 흐름제어 : 제어문
- 선택문 : 조건에 따른 선택 분기(if, switch)
- 반복문 : 특정 블록이나 문장을 반복실행(while, do, form, foreach)
- 분기문 : 조건에 따라 다른 분기점으로 제어 흐름을 이동 (goto, beak, continum)
선택문
if문
- 조건식이 참이면 A. 조건식이 거짓이면 B를 실행
- if (조건식)
{
A
}
else
{
B
}
- 반드시 조건식의 결과는 Boolean형이어야 한다.(True or False) : 0 or 1을 사용할수 없음.
else if 문
- 연속적인 조건을 검사할대
- 다중 if문
- if(조건식)
A
else if(조건식)
B
else if(조건식)
C
else
D
중첩 if문
- if문안에 if문을 사용
- if(조건식)
{
if(조건식)
A실행
else
B실행
}
switch문
- 한 변수의 값에 따라서 선택해야 하는 조건이 많을 때..
- 조건식 : 숫자 및 문자열 모두 허용
(sbyte, byte, short, ushort, int, uint, long, ulong, char, string, enum)
- case 레이블 : 각 선택 조건의 값들..
- 반드시 레이블 끝에는 분기문이 와야한다
- if문에 비해 직관적
- 레이블에는 중북된 값이 들어가면 안된다.
- 중복 레이블 : 레이블을 적고, 문장 및 분기문을 적지 않고 공유한다
switch(s)
{
case "1" :
...
case "2" :
case "3" :
//중복레이블로 s가 2나 3일 경우 둘다 아래분기를 실행한다.
...
default :
}
반복문
while문
- 간단한 반복문
- 조건을 만족하는 동안 반복한다.
- 조건을 만족 못하는 순간 while문 밖으로 제어가 이동
- 반드시 조건식의 반환값은 bool값
- while(조건식)
{
실행문
}
do while문
- while문과 유사, 조건에 상관없이 일단 1회 실행
- 조건식이 뒤에 위치
- do
{
실행문;
}while(조건식);
반복문의 중첩
- 반복문끼리 중첩가능하다.
- 너무 많이 중첩되면 가독이 힘들다
- for, while, do/while 상관없이 중첩가능
무한반복문
- 조건이 항상 true인 반복문
- for(;;;){}
- while(true){}
- do{} while{true}
- 보통 while을 많이 사용
public void ForTest01()
{
//for문에서는 조건식을 제외한 나머지 식에서 여러 개의 문장을 포함할수 있다.
for(int j=1, k=10; (j<=10) && (k>=1); j++, k--)
Console.WriteLine("{0,2}\t{1,2}",j,k);
//Console.WriteLine("i={0}, j={1}", i, j);
//위에서 i,j 는 for문에서만 사용되는 privite 변수로 사용된다.
int i = 0;
while(true)
{
for(int j=1; j<i; j++) Console.WriteLine();
Console.WriteLine("I Love You");
for(int j=1; j<=10000; j++); //for문다음에 ;이 오면 실행시킬 문장이 없다는 얘기임
i++;
}
}