Dart에서 제어문 활용하기: 기초부터 심화까지

2024. 6. 21. 14:41Flutter/Dart Language

반응형

 

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 {
  // 항상 실행되는 코드
}
 

예를 들어, 다음 코드는 파일을 열고 내용을 출력하는 예시입니다.

Dart
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. 추가 자료

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

 

Tester Share [테스터쉐어] - Google Play 앱

Tester Share로 Google Play 앱 등록을 단순화하세요.

play.google.com

카카오톡 오픈 채팅방

https://open.kakao.com/o/gsS8Jbzg

반응형