Dart의 흐름 제어문은 프로그램의 실행 흐름을 제어하는 데 사용된다. 이를 통해 조건에 따라 코드를 실행하거나 반복적으로 코드를 실행할 수 있다. Dart에서 제공하는 주요 흐름 제어문으로는 if
, switch
, for
, while
이 있다.
if 문
if
문은 주어진 조건이 참일 때 코드 블록을 실행하는 제어문이다. 기본 구조는 다음과 같다.
if (condition) {
// 조건이 참일 때 실행되는 코드
} else if (otherCondition) {
// 다른 조건이 참일 때 실행되는 코드
} else {
// 모든 조건이 거짓일 때 실행되는 코드
}
예제
int age = 18;
if (age >= 18) {
print("성인이다.");
} else {
print("미성년자이다.");
}
이 예제에서, age
변수가 18 이상이면 "성인이다."라는 메시지를 출력하고, 그렇지 않으면 "미성년자이다."라는 메시지를 출력한다.
switch 문
switch
문은 여러 조건을 비교할 때 사용하는 제어문으로, if-else if
문을 간결하게 표현할 수 있다. switch
문은 값과 일치하는 case
블록을 찾아 실행하고, 일치하는 값이 없으면 default
블록이 실행된다.
기본 구조
switch (expression) {
case value1:
// value1에 해당하는 코드
break;
case value2:
// value2에 해당하는 코드
break;
default:
// 아무 것도 일치하지 않을 때 실행되는 코드
}
예제
String grade = 'B';
switch (grade) {
case 'A':
print('우수');
break;
case 'B':
print('양호');
break;
case 'C':
print('보통');
break;
default:
print('재수강 필요');
}
위 예제에서 grade
변수가 'B'이므로 "양호"라는 메시지가 출력된다. 각 case
이후에는 break
문을 사용하여 실행을 중단해야 한다. 그렇지 않으면 다음 case
로 계속 실행된다.
for 문
for
문은 일정 횟수만큼 코드를 반복 실행하는 제어문이다. 일반적으로 초기값, 조건식, 증감식을 사용하여 반복을 제어한다.
기본 구조
for (초기값; 조건식; 증감식) {
// 반복할 코드
}
예제
for (int i = 0; i < 5; i++) {
print('반복 횟수: $i');
}
위 예제에서는 i
가 0부터 시작하여 5 미만일 때까지 반복하며, 매번 i
값을 출력한다. i++
는 반복할 때마다 i
값을 1씩 증가시키는 역할을 한다.
while 문
while
문은 조건이 참일 때까지 코드를 반복 실행하는 제어문이다. 조건을 먼저 평가하고 참일 경우에만 코드가 실행된다.
기본 구조
while (조건식) {
// 반복할 코드
}
예제
int count = 0;
while (count < 5) {
print('현재 카운트: $count');
count++;
}
이 예제는 count
변수가 5 미만일 때까지 "현재 카운트"를 출력하며, 매번 count
값을 1씩 증가시킨다.
do-while 문
do-while
문은 while
문과 유사하지만, 조건을 나중에 평가한다. 즉, 코드 블록이 먼저 실행된 후 조건을 검사하여 반복 여부를 결정한다. 따라서 적어도 한 번은 무조건 실행된다.
기본 구조
do {
// 반복할 코드
} while (조건식);
예제
int count = 0;
do {
print('현재 카운트: $count');
count++;
} while (count < 5);
위 예제에서는 count
변수가 5 미만일 때까지 반복하면서 count
값을 출력한다. do-while
문에서는 while
문과 달리 코드가 먼저 실행된 후 조건을 검사한다.
흐름 제어의 중첩
흐름 제어문은 다른 흐름 제어문 안에 중첩될 수 있다. 이를 통해 더 복잡한 논리를 구현할 수 있다. 예를 들어, if
문 안에 for
문을 넣거나 switch
문 안에 if
문을 넣는 방식이 가능한다.
예제
for (int i = 0; i < 3; i++) {
if (i % 2 == 0) {
print('$i는 짝수이다.');
} else {
print('$i는 홀수이다.');
}
}
이 예제에서는 for
문 안에 if
문을 중첩하여 i
의 값이 짝수인지 홀수인지 확인하고, 각각에 맞는 메시지를 출력한다.
break와 continue
흐름 제어문 내에서 break
와 continue
를 사용하여 반복을 제어할 수 있다.
- break: 반복문을 즉시 종료한다.
- continue: 이번 반복을 건너뛰고 다음 반복을 시작한다.
예제: break
for (int i = 0; i < 5; i++) {
if (i == 3) {
break;
}
print('반복 횟수: $i');
}
이 예제에서는 i
가 3이 되면 break
문이 실행되어 반복이 종료된다. 결과적으로 0
, 1
, 2
만 출력된다.
예제: continue
for (int i = 0; i < 5; i++) {
if (i == 3) {
continue;
}
print('반복 횟수: $i');
}
이 예제에서는 i
가 3일 때 continue
문이 실행되어 그 이후 코드를 건너뛰고 다음 반복을 시작한다. 결과적으로 3
은 출력되지 않고 0
, 1
, 2
, 4
가 출력된다.