1. for
for문은 특정 횟수만큼 반복할 때 사용한다.
for (초기화; 조건; 증감식) {
// 반복 실행할 코드
}
for문 안의 괄호 안에는 3가지 영역이 있다.
먼저 변수를 초기화하여 반복 횟수를 제어하는 영역.
조건이 true면 반복 실행, false가 되면 반복문을 종료하는 영역.
마지막으로 반복이 끝날 때마다 해당 변수를 증가 또는 감소시키는 영역이 있다.
var message = StringBuffer('Dart is fun');
for (var i = 0; i < 5; i++) {
message.write('!');
}
// Dart is fun!!!!!
실행 흐름은 다음과 같다.
i를 0으로 초기화 후(시작 시점),
해당 조건(i<5)을 충족하면(종료 시점) 중괄호 안의 코드가 실행된다.
message.write('!')가 실행된 후, i의 값에 1을 더한다(증감값).
즉, 위 코드는 message에 "!"를 5번 추가한다.
만약, List나 Set와 같은 Iterable 컬렉션을 순회할 때는 for-in 을 사용하는 것이 더 깔끔하다.
for (final candidate in candidates) {
candidate.interview();
}
candidates 리스트에 들어 있는 각 요소를 하나씩 candidate 변수에 할당한다.
그 후, candidate 객체의 interview 메서드를 호출한다.
여기서 final 키워드는 한 번만 할당할 수 있는 변수를 선언할 수 있는 키워드로, 초기값을 설정한 후 변경할 수 없다.
final을 사용하면 반복문 내부에서 candidate에 새로운 값을 할당하는 실수를 방지할 수 있다.
2. while
while은 주어진 조건이 true라면 계속 실행되는 반복문이다.
while (조건) {
// 실행할 코드
}
괄호 안의 조건이 true일 때만 실행되며, false일 경우, 반복이 종료된다.
이때, 조건이 처음부터 false라면 반복문이 한 번도 실행되지 않을 수도 있다.
주로 반복 횟수가 정해지지 않은 경우에 사용한다.
while (!isDone()) {
doSomething();
}
isDone 함수가 false를 반환하면 !false(true)가 되어 반복문이 실행된다.
해당 조건을 충족하면 doSomthing()을 실행하고,
다시 조건(!isDone)을 true인지, false인지 반복 여부를 결정한다.
만약, 해당 조건이 false를 반환하면 반복문이 종료된다.
3. do While
do while은 최소 한 번은 실행되는 반복문이다.
즉, 반복문이 실행되기 전에 조건을 검사하지 않고, 먼저 실행한 후 조건을 평가한다.
do {
// 실행할 코드
} while (조건);
일단 코드를 먼저 실행 한 후, 조건을 검사한다.
조건이 true면 반복하고, false면 종료한다.
do {
printLine();
} while (!atEndOfPage());
printLine()이 실행되고, !atEndOfPage()를 검사한다.
해당 조건이 true라면 계속 반복하고, false라면 반복이 종료된다.
4. Break / continue
break를 사용하면 반복문을 즉시 종료할 수 있다.
while (true) {
if (shutDownRequested()) break;
processIncomingRequests();
}
while 조건문이 true면 반복이 무한으로 실행된다.
여기서 만약 shutDownRequested()가 true를 반환하면 break가 실행되어 반복문이 종료된다.
만약 false를 반환하면 processIncomingRequests()가 실행된다.
continue는 실행중인 반복을 건너뛰고 다음 반복을 수행한다.
for (int i = 0; i < candidates.length; i++) {
var candidate = candidates[i];
if (candidate.yearsExperience < 5) {
continue;
}
candidate.interview();
}
candidate.yearsExperience < 5 가 true라면 아래 코드를 실행하지 않고 다음 i로 이동한다.
만약 false라면 candidate.interview()가 실행된다.
참고자료
'Flutter' 카테고리의 다른 글
[Dart] 조건문 (if, if-else, switch) (0) | 2025.03.10 |
---|---|
[Dart] 연산자 (Operators) (0) | 2025.03.10 |
[Dart] 데이터 타입 (0) | 2025.03.10 |
[Dart] 변수 선언 (0) | 2025.03.07 |