Dart는 다양한 제어문을 제공하여 프로그램 흐름을 제어하고 조건에 따라 코드를 실행하도록 합니다.
이 블로그 게시물에서는 Dart에서 사용할 수 있는 기본적인 제어문부터 심화적인 제어문까지 다양한 종류와 활용법을 알아보겠습니다.
1. 기본적인 제어문
1.1 if/else 문
가장 기본적인 제어문은 조건에 따라 코드를 실행하는 if/else 문입니다.
if (조건) {
// 조건이 참일 때 실행되는 코드
} else {
// 조건이 거짓일 때 실행되는 코드
}
예를 들어, 만약 나이가 18세 이상인지 확인하고 싶다면 다음과 같이 코드를 작성할 수 있습니다.
int age = 20;
if (age >= 18) {
print("성인입니다.");
} else {
print("미성년자입니다.");
}
1.2 switch 문
여러 가지 조건에 따라 코드를 실행해야 하는 경우 switch 문을 사용할 수 있습니다.
String grade = "A";
switch (grade) {
case "A":
print("우수합니다!");
break;
case "B":
print("좋습니다.");
break;
case "C":
print("보통입니다.");
break;
default:
print("등급을 확인하세요.");
}
1.3 for 문
반복적으로 코드를 실행해야 하는 경우 for 문을 사용합니다.
for (var i = 0; i < 5; i++) {
print(i);
}
1.4 while 문
조건이 참인 동안 반복적으로 코드를 실행해야 하는 경우 while 문을 사용합니다.
int number = 1;
while (number <= 10) {
print(number);
number++;
}
2. 심화적인 제어문
2.1 do-while 문
do-while 문은 while 문과 비슷하지만, 반복문을 한 번 이상 실행한 후 조건을 검사합니다.
int number = 1;
do {
print(number);
number++;
} while (number <= 10);
2.2 for-in 문
for-in 문은 리스트, 맵, 문자열과 같은 반복 가능한 자료구조의 요소를 순환하는 데 사용됩니다.
List<String> names = ["Alice", "Bob", "Charlie"];
for (String name in names) {
print(name);
}
2.3 break 문
break 문은 현재 반복문을 즉시 종료합니다.
for (var i = 0; i < 10; i++) {
if (i == 5) {
break;
}
print(i);
}
2.4 continue 문
continue 문은 현재 반복문의 나머지 코드를 건너뛰고 다음 반복으로 이동합니다.
for (var i = 0; i < 10; i++) {
if (i % 2 == 0) {
continue;
}
print(i);
}
3. 실제 활용 예시
다음은 제어문을 활용한 실제 코드 예시입니다.
3.1 점수에 따라 학점 출력하기
int score = 85;
if (score >= 90) {
print("A");
} else if (score >= 80) {
print("B");
} else if (score >= 70) {
print("C");
} else {
print("D");
}
3.2 1부터 100까지 3의 배수만 출력하기
다음은 Dart에서 1부터 100까지 3의 배수만 출력하는 방법을 세 가지 방법으로 설명합니다.
방법 1: for 문 사용
for (int i = 1; i <= 100; i++) {
if (i % 3 == 0) {
print(i);
}
}
설명
- for 문을 사용하여 1부터 100까지 반복합니다.
- 각 반복마다 i % 3 == 0 조건을 검사합니다.
- 조건이 참이면 (i가 3의 배수면) i 값을 출력합니다.
방법 2: while 문 사용
int i = 1;
while (i <= 100) {
if (i % 3 == 0) {
print(i);
}
i++;
}
설명
- i 변수를 1로 초기화합니다.
- while 문을 사용하여 i가 100보다 작거나 같을 때까지 반복합니다.
- 각 반복마다 i % 3 == 0 조건을 검사합니다.
- 조건이 참이면 (i가 3의 배수면) i 값을 출력합니다.
- 마지막으로 i 값을 1씩 증가시킵니다.
방법 3: 리스트 활용
List<int> numbers = List.generate(100, (i) => i + 1);
List<int> multiplesOfThree = numbers.where((number) => number % 3 == 0).toList();
for (int number in multiplesOfThree) {
print(number);
}
설명:
- List.generate 함수를 사용하여 1부터 100까지 포함된 정수 리스트를 생성합니다.
- where 메서드를 사용하여 3의 배수만 포함된 새로운 리스트를 생성합니다.
- toList 메서드를 사용하여 새로운 리스트를 List<int> 형식으로 변환합니다.
- for 문을 사용하여 3의 배수 리스트를 출력합니다.
각 방법의 장단점
- 방법 1: 가장 간결하고 이해하기 쉬운 방법이지만, 코드 길이가 조금 길어질 수 있습니다.
- 방법 2: while 문을 사용하여 반복 조건을 명확하게 표현할 수 있지만, i++ 연산을 따로 해야 합니다.
- 방법 3: 리스트 활용을 통해 코드를 더욱 간결하게 작성할 수 있지만, List.generate, where, toList 메서드와 같은 다양한 함수와 메서드를 사용하기 때문에 초보자에게는 다소 어려울 수 있습니다.
선택
개인의 선호와 상황에 따라 적절한 방법을 선택할 수 있습니다. 코드의 간결성, 이해 용이성, 유지 보수성 등을 고려하여 선택하는 것이 좋습니다.
4. 예외 처리
예외 상황을 처리하기 위해 try-catch 문을 사용합니다.
try {
// 예외가 발생할 가능성이 있는 코드
} catch (error) {
// 예외가 발생했을 때 실행되는 코드
} finally {
// 항상 실행되는 코드
}
예를 들어, 다음 코드는 파일을 열고 내용을 출력하는 예시입니다.
try {
File file = File("myfile.txt");
String content = file.readAsStringSync();
print(content);
} catch (error) {
print("파일을 읽는 데 오류가 발생했습니다: ${error}");
} finally {
// 파일을 닫는 코드
}
5. 비동기 프로그래밍
비동기 프로그래밍을 위해 async, await 키워드를 사용합니다.
Future<void> myFunction() async {
// 비동기적으로 실행되는 코드
await Future.delayed(Duration(seconds: 2));
print("2초 후에 실행됩니다.");
}
void main() async {
await myFunction();
print("myFunction() 실행 완료");
}
6. 제어문 활용 팁
- 적절한 제어문을 사용하여 코드를 명확하고 이해하기 쉽게 작성하십시오.
- 중첩된 제어문은 지나치게 많이 사용하지 않도록 주의하십시오.
- 조건 분기가 복잡한 경우, switch 문이나 if-else 문을 조합하여 사용하는 것이 좋습니다.
- 반복문을 사용할 때는 반복 횟수를 명확하게 파악하고, 무한 루프에 빠지지 않도록 주의하십시오.
- 예외 상황을 제대로 처리하여 프로그램의 안정성을 높이십시오.
- 비동기 프로그래밍을 사용하여 응답 속도를 높이고, 사용자 경험을 향상시킬 수 있습니다.
7. 추가 자료
- Dart 공식 문서: https://dart.dev/
- Dart 제어문 가이드: https://dart.dev/language/loops
- Dart 비동기 프로그래밍 가이드: https://dart.dev/libraries/async/async-await
8. 마무리
Dart에서 제공하는 다양한 제어문을 효과적으로 활용하면 코드를 명확하고 효율적으로 작성할 수 있습니다. 이 블로그 게시물을 통해 Dart 제어문에 대한 이해를 높이고, 실제 개발에 활용하는 데 도움이 되었기를 바랍니다.
수발가족을 위한 일기장 “나비일기장”
https://play.google.com/store/apps/details?id=com.maccrey.navi_diary_release
구글플레이 앱 배포의 시작! 비공개테스트 20명의 테스터모집을 위한 앱 "테스터 쉐어"
https://play.google.com/store/apps/details?id=com.maccrey.tester_share_release
카카오톡 오픈 채팅방
'Flutter > Dart Language' 카테고리의 다른 글
Dart에서 재귀 함수 활용하기: 심층 가이드 (0) | 2024.06.21 |
---|---|
Dart에서 함수 활용하기: 기초부터 심화까지 (0) | 2024.06.21 |
Dart에서 삼항 연산자 활용 완벽 가이드 (0) | 2024.06.20 |
Dart에서 연산자 완벽 가이드 (0) | 2024.06.20 |
Dart 변수: 입문자를 위한 완벽 가이드 [ 리스트형 변수, 맵형 변수, 동적 변수 ] (0) | 2024.06.20 |