[Dart] Control Flow Statements
이번에는 Dart의 제어문에 대해 살펴보겠습니다.
다른 언어들과 완전히 똑같다고 보셔도 될 거 같아요.
Conditional Statements
먼저, 조건문부터 보겠습니다.
조건문에는 if-else문과 switch-case문이 있습니다.
if-else
다른 언어들과 동일하므로, 문법만 보여드릴게요.
var score = 88;
String grade;
if (score > 90) {
grade = 'A';
} else if (score > 80) {
grade = 'B';
} else if (score > 70) {
grade = 'C';
} else {
grade = 'D';
}
switch-case
기본적으로 다른 언어와 동일합니다.
var trafficLight = 'Red';
switch (trafficLight) {
case 'Red':
trafficLight = 'Green';
break;
case 'Green':
trafficLight = 'Yellow';
break;
case 'Yellow':
trafficLight = 'Red';
break;
default:
trafficLight = 'Red';
}
비교는 ==연산자를 사용한 비교로 동작합니다.
fall-through는 중간에 아무런 statements도 없어야 가능합니다.
case 'Red':
case 'Green':
trafficLight = 'Yellow';
break;
continue문과 label을 이용하면 원하는 곳으로 코드 흐름을 보낼 수 있습니다.
case 'Red':
trafficLight = 'Green';
continue Yellow;
case 'Green':
trafficLight = 'Yellow';
break;
Yellow:
case 'Yellow':
trafficLight = 'Red';
break;
Loop Statements
다음으로 반복문을 보겠습니다.
반복문은 크게 for, while문이 있습니다.
for
for, for-in, forEach의 3가지 방법이 있고, 다른 언어들과 동일하게 사용됩니다.
var nums = [1, 2, 3];
// for
for (var i = 0; i < nums.length; ++i) {
print(nums[i]);
}
// for-in
for (final i in nums) {
print(i);
}
// forEach
nums.forEach(print);
동일하게 list의 각 요소를 순회하며 출력하는 3가지 방법의 예제입니다.
while
while과 do-while의 2가지 방법이 있습니다.
다른 언어들과 마찬가지로 조건을 먼저 검사하고 loop를 수행하느냐, loop를 먼저 수행하고 조건을 검사하느냐의 차이가 있습니다.
var fruits = ['apple', 'banana', 'cherry'];
var i = 0;
// while
while (i < fruits.length) {
print(fruits[i]);
++i;
}
i = 0;
// do-while
do {
print(fruits[i]);
++i;
} while (i < fruits.length);
break and continue
역시 다른 언어들과 마찬가지로 loop문에서 break를 만나면, 현재 loop를 exit하고, continue를 만나면 이후 코드를 무시하고 다음 번 순회를 합니다.
조건문에서의 사용은 switch-case에서 보셨죠?
Assert
Development 시에는 boolean condition이 false일 때, Error를 발생시킵니다.
Production code에서는 무시됩니다.
var num = 0;
assert(num != 0);
주로 개발할 때, 보다 safe한 코드를 만들기 위한 오류 검출을 위해 사용합니다.
Wrap Up
이번 포스팅에서 설명드린 제어문은 다른 언어와 동일하기 때문에 쉽게 사용하실 수 있을 것 같습니다.