작성자 | 이재영 |
일 시 | 2024. 5. 16 (목) 18:00 ~ 21:00 |
장 소 | 복지관 b128-1호 |
참가자 명단 | 임혜진, 이재영, 성창민, 김명원, 장원준 |
사 진 | ![]() |
목차
- Loops
- Branchs
이번 주차에는 Dart에서의 반복문과 조건문을 알아보겠다.
Loops
1. For Loops
가장 처음으로 많은 언어들에서도 보이는 for 반복문이다. for 반복문은 마찬가지로 for문에서 사용할 변수, 조건식, 증감식으로 구성되어 있다.
var message = StringBuffer('Dart is fun');
print(message);
for(var i = 0; i < 5; i++)
{
message.write('!');
}
print(message);
이렇게 코드를 작성하면 for문에서는 'message.write('!');' 라는 코드가 총 5회 반복이 될 것이다. 결과는 다음과 같다.
for문을 사용하는 이유는 List 사용이 편해지기 때문이다.
var callbacks = [];
for (var i = 0; i < 2; i++) {
callbacks.add(i);
}
for (var i = 0; i < 2; i++) {
print(callbacks[i]);
}
이런 식으로 List에 값을 넣기도, 접근하기도 쉬워지기 때문에 for문을 사용하는 것도 있다.
2. For-In
다음으로 알아볼 것은 for-in 구조이다. Python for문과 비슷한 구조로 Iterable 같은 유형에 자주 사용된다.
var nums = [1, 2, 3, 4, 5];
for (final c in nums) {
print(c);
}
이런 식으로 Python과 비슷하게 List를 in으로 받아 final c 에 각각의 값을 저장하며 반복하는 형식이고, 결과는 다음과 같다.
3. forEach 메소드
Dart에서 있는 정말 유용한 반복문 관련 메소드이다. forEach 메소드는 list에 있는 내용물을 기본으로 하여 자동으로 반복문을 실행해준다. 기본 형식은 List.forEach( (element) {} ); 이다.
var collection = [1, 2, 3];
collection.forEach(print); // 1 2 3
collection.forEach((element) {
print("순서 : $element");
});
자, 이런 식으로 forEach를 사용하게 되면 2번째 줄 forEach에서는 collection 속 1,2,3 요소를 하나하나 print해주는 코드가 되며, 3번째 줄 forEach에서는 collection 속 1,2,3 요소를 하나하나 element라는 변수에 담아 반복하며 사용 가능하게 해준다. 결과값은 다음과 같다.
4. While
while 문도 다른 언어와 마찬가지로 while(조건식){코드 작성} 형태로 사용하면 된다.
int i = 0;
while (i < 10) {
print(i);
i++;
}
이렇게 작성을 하면 i를 통해서 0~9까지 출력이 되는 것을 볼 수 있을 것이다.
4. do-While
do-while문도 다른 언어와 똑같이 맨처음에 조건식을 신경쓰지 않고 1회 실행 이후 조건식을 확인하는 방식으로 코드가 진행된다.
int i = 0;
do{
print(i);
i++;
} while(i > 10);
이렇게 i > 10 이라는 false인 조건식을 사용하더라도 한 번은 실행되기 때문에 0이 출력되는 것을 볼 수 있을 것이다.
Branchs
1. if, else, else if
다른 언어와 마찬가지로 조건식을 확인하여 참이면 실행하는 기능을 가진 조건문이다.
void main() {
var i = 1;
if (i == 1) {
print("A");
} else if (i == 2) {
print("B");
} else {
print("C");
}
}
이런 식으로 사용하게 되면 i == 1 은 참이기 때문에 A가 출력되는 것을 볼 수 있고, 만약 i가 2였다면 B가, 1도 2도 아니라면 C가 출력될 것이다.
2. Switch
switch문은 하나의 데이터를 기준으로 다양한 case를 나누어 비교하는 조건문을 말한다.
var command = 'OPEN';
switch (command) {
case 'CLOSED':
executeClosed();
case 'PENDING':
executePending();
case 'APPROVED':
executeApproved();
case 'DENIED':
executeDenied();
case 'OPEN':
executeOpen();
default:
executeUnknown();
}
command 변수 안에 담긴 값에 따라 case를 나누어져 OPEN이기 때문에 executeOpen()이 실행될 것을 볼 수 있다. 그러나 다른 언어와 다른 점이 하나 보이는 데, 바로 break가 없는 것이다. 다른 언어에서 switch를 사용하면 case 마다 break를 걸어주어야 하지만 Dart에서는 그러지 않아도 된다.
오늘은 Dart에서 사용되는 제어문들을 알아보았다. Dart언어를 알아보면서 제어문에서도 다양한 언어의 장점을 섞은 듯한 느낌을 받을 수 있었다.