프로그램은 데이터를 조작하고 처리하기 위한 다양한 명령문의 집합으로 구성된다. 제어문은 이러한 명령문의 흐름을 제어하는 역할을 담당한다.
분류 | 설명 | 종류 |
선택문(Selection Statements) | 조건에 따른 특정 명령문 수행 | if, switch |
반복문(Iteration Statements) | 특정 명령문의 반복 수행 | for, foreach, while, do~while |
분기문(Jump Statements) | 명령문의 흐름 전환 | break, continue |
예외 처리문(Exception handing Statements) | 예외 처리 수행 | try~catch~finally |
선택문
프로그래밍의 핵심으로, 사용자의 입력이나 다양한 조건에 따라 특정 명령문을 수행한다. 선택문은 조건 비교로 시작된다.
if문
가장 많이 쓰이는 선택문으로, 조건에 따라 특정 명령문 블록을 실행한다.
if문 안에 또 다른 if문을 넣을 수 있으며, 조건 비교에는 하나 이상의 조건을 비교할 수 있다.
int score = 180;
string stringResult = "";
if (score > 100 && score <= 200)
{
if (score > 170) stringResult = "참 ";
stringResult = stringResult + "잘했습니다.";
}
else {
stringResult = "노력 바랍니다.";
}
ShowResult(stringResult);
switch문
if문은 조건의 논리 값에 의해 수행되는 블록이 결정되었다면 switch문은 변수 값에 의해 수행되는 블록이 결정된다. 정수형, 논리형, 문자형, 문자열 또는 열거형인 변수만을 사용할 수 있다.
switch (myInt) {
case 1:
case 2:
// 이 블록 1은 myInt가 1 또는 2일 때 실행
break;
default:
// 블록 2
break;
}
myInt가 1일 때 case1을 실행하고 break문이 없어 case2도 실행한다.
반복문
반복문을 이용하면 특정 명령문 블록을 여러 번 반복하여 수행할 수 있다. 처리하고자 하는 유형에 따라 반복문을 선택하여 사용한다.
for문
for문을 만들기 위해서는 제어 변수와 제어 변수의 초깃값, 제어 변수 종료값, 각 단계마다 제어 변수의 증가량을 결정해야 한다.
for(int i = 0; i < 10; i++) {
// 블록 1
}
foreach문
일련의 데이터를 하나의 객체에 넣어 관리할 때는 배열 또는 컬렉션을 이용한다. 컬렉션은 객체 집한을 말한다. foreach문은 배열과 컬렉션 내의 각 항목을 통해 반복문을 수행한다.
// B 부분에 코딩
int[] intArray = { 1, 2, 3 };
int total = 0;
foreach (int item in intArray) {
total += item;
}
ShowResult("합 = " + total);
foreach에서 반복 변수(제어 변수)는 읽기 전용이므로 foreach 블록 내에서 반복 변수의 값을 바꿔서는 안된다.
while문
조건식을 만족하는 동안 반복적으로 특정 명령문을 실행할 때 사용한다.
int myInt = 0;
while(myInt < 10) { // myInt가 10보다 작을 때까지 블록 1을 실행
// 블록 1
myInt++;
}
for문과는 달리 제어 변수의 변화되는 값을 직접 할당해주어야 한다.
do~while문
while문의 경우 조건식이 거짓이면 whlie 블록을 한 번도 실행하지 않을 수 있는 반면, do~while문은 블록을 먼저 실행한 후 조건을 비교하므로 조건식에 관계없이 적어도 한 번은 수행한다.
int myInt = 0;
do { // myInt가 10보다 작을 때까지 블록 1을 실행
// 블록 1
myInt++;
}
while(myInt < 10);
분기문
명령문의 흐름을 이동시킬 때는 분기문을 이용한다. goto문, break문, continue문이 있다.
goto문
지시하는 레이블이 있는 곳으로 프로그램의 흐름을 이동시킨다. goto문을 사용하면 자칫 프로그램의 흐름을 혼란스럽게 만들 수 있기 때문에 사용을 자제해야 한다.
// B 부분에 코딩
int myInt = 0;
MatchFour:
myInt++;
if (myInt == 5) goto LoopOut;
for (int i = 0; i < 10; i++) {
// 블록 1
if (i == 4) goto MatchFour;
}
LoopOut:
ShowResult("블록 1이 5번씩 4번 수행");
break문과 continue문
둘다 모두 반복문 내에서 사용된다. break문은 반복문을 빠져나오기 위해 사용하는 것으로, 코드 블록 다음으로 흐름을 이동시키는 반면, continue문은 반복문의 조건식으로 흐름을 이동시킨다.
다음은 1에서 시작하여 3의 배수를 제외한 수의 합을 구하다가 합이 100이 넘으면 합을 구하는 것을 종료하는 코드이다.
// B 부분에 코딩
int myInt = 0;
int sum = 0;
while (true) {
myInt++;
if (myInt % 3 == 0) continue;
sum += myInt;
if (sum > 100) break;
}
ShowResult("myInt = " + myInt);
ShowResult("sum = " + sum);
ShowResult("3의 배수를 제외한 수의 합이 100을 넘었습니다.");
예외 처리문
프로그램 실행 중에 오류가 발생하여 멈추는 경우가 있는데, 이를 예외 현상이라고 한다. 예외 처리문은 예외 현상으로 발생할 수 있는 비정상적인 종료를 방지하기 위해 예외 현상이 일어날 가능성이 있는 부분에 사용한다.
try~catch~finally문
try{
// 예외 현상이 일어날 가능성이 있는 부분
}
catch([예외 종류]){
// 예외 현상이 발생하면 처리하는 부분
}
finally{
// 예외 현상 발생과 관련없이 처리하는 부분
}
catch 블록이나 finally 블록 중에서 하나는 생략하고 사용할 수 있다. 예외의 종류에 특별히 신경 쓰지 않아도 되는 경우에는 예외 종류를 생략할 수 있다.
다음은 데이터형을 변환할 때 발생하는 예외 현상을 처리하는 예다.
// B 부분에 코딩
string stringValue;
try
{
stringValue = "7.8";
int myInt = int.Parse(stringValue);
}
catch {
ShowResult("예외 현상 발생");
}
'ASP.NET 4.0' 카테고리의 다른 글
[ASP.NET] 객체 지향 프로그래밍 (2) (0) | 2021.12.28 |
---|---|
[ASP.NET] 객체 지향 프로그래밍 (1) (0) | 2021.12.27 |
[ASP.NET] 연산자 (0) | 2021.12.27 |
[ASP.NET] 형 변환과 형 변환 메서드 (0) | 2021.12.27 |
[ASP.NET] C# 데이터형(2), 상수 (0) | 2021.12.27 |
댓글