본문 바로가기
Dart (Flutter)

[Dart] Control Flow Statements

by llHoYall 2023. 2. 3.

이번에는 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

whiledo-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

이번 포스팅에서 설명드린 제어문은 다른 언어와 동일하기 때문에 쉽게 사용하실 수 있을 것 같습니다.

'Dart (Flutter)' 카테고리의 다른 글

[Dart] Classes  (0) 2023.02.08
[Dart] Functions  (0) 2023.02.03
[Dart] Operators  (0) 2023.02.02
[Dart] Data Types  (0) 2023.02.01
[Dart] Variables  (0) 2023.01.30

댓글