프로그램 제어 흐름의 영문 표현은:Flow of Control
프로그램을 개발할 때 대부분의 로직은 메서드 안에 담습니다. 나머지 로직은 속성, 연산자 및 기타 함수 멤버에 배치합니다.
제어 흐름 분류
소위 제어 흐름(flow of control)이란 프로그램 코드가 실행되는 경로를 의미합니다.
기본적으로 프로그램은 위에서 아래로 차례대로 모든 구문을 실행합니다.
제어 흐름 구문을 사용하면 코드 실행 순서를 바꿀 수 있습니다.
제어 구문은 종류가 많으며 후속 수업에서 자세히 다룰 예정입니다. 이번 시간에는 맛보기로 제어 흐름의 기본 개념을 익혀보겠습니다.
C#에는 크게 세 가지 주요 제어 흐름이 있습니다:
순차 실행이 기초이며, 세 가지 제어 흐름은 각각 분기, 반복, 점프 로직을 구현합니다;
- 선택 구문(Selection statements)
- 반복 구문(Iteration statements 반복문)
- 점프 구문(Jump statements)
각 구문 안에는 여러 가지 작성 방식이 존재합니다:
선택 구문
주요 목적:특정 조건에 따라 일부 구문은 실행하고 나머지는 건너뜁니다.
- if 조건이 참일 때 코드 블록 실행
- if–else 두 가지 흐름 중 하나 선택 실행
- switch 다중 분기 매칭으로 여러 코드 묶음 중 하나 실행
반복 구문
주요 목적:조건을 만족하는 동안 동일한 코드를 반복 실행
- for 조건 검사 후 반복 실행
- while 조건 검사 후 반복 실행
- do while 코드를 먼저 실행한 뒤 조건 확인
- foreach 컬렉션의 모든 요소를 순회하며 자동 실행
점프 구문
- break 현재 반복문을 즉시 종료
- continue 이번 반복을 중단하고 남은 코드를 건너뛴 뒤 반복문 끝으로 이동해 다음 회차 시작
- goto 레이블이 지정된 구문으로 실행 위치 이동
- return 현재 메서드를 종료하고 호출 지점으로 복귀
지금은 간략하게 알아두고, 이후 수업에서 자세히 배우면 됩니다.
class Program
{
static void Main()
{
int age = 18;
if (age >= 18) //조건이 충족되면 if 블록 코드 실행
{
Console.WriteLine("성인입니다");
}
int score = 85;
if (score >= 90) //여러 차례 조건 검사
{
Console.WriteLine("우수");
}
else if (score >= 80) //위 조건이 맞지 않으면 이 조건 확인
{
Console.WriteLine("양호");
}
else if (score >= 70) //위 두 조건이 맞지 않으면 이 조건 확인
{
Console.WriteLine("보통");
}
else if (score >= 60) //위 세 조건이 맞지 않으면 이 조건 확인
{
Console.WriteLine("합격");
}
else //모든 위 조건 불만족 시 실행, 기본 처리 구문
{
Console.WriteLine("불합격");
}
//for 반복문 i는 0부터 시작, i가 10보다 작을 때 반복 실행, 반복마다 i 1증가
for (int i = 0; i < 10; i++)
{
Console.WriteLine(i);
}
int sum = 0;
while (sum < 100) //sum이 100 미만일 때 반복문 내 코드 실행
{
sum += 10; //반복마다 sum에 10 더하기
Console.WriteLine(sum);
}
int count = 5;
do
{
Console.WriteLine("이 코드는 최소 한 번 실행됩니다");
count++; //반복마다 count 1증가
} while (count<5); //조건이 틀려도 반복 본문은 한 번 실행
int[] scores = { 90, 80, 70, 60, 50 }; //요소 5개 배열 선언
foreach (var item in scores) //배열 요소를 차례로 item에 담고 반복, 모든 요소 순회 완료까지 진행
{
Console.WriteLine(item);
}
}
}
Code language: JavaScript (javascript)
위 코드를 직접 Visual Studio에 복사해서 실행해 볼 수 있습니다. 이후 수업에서 각 구문을 하나씩 자세히 다룹니다.
프로그램 제어 흐름