프로그래밍 언어/Dart

Dart List와 Map 완벽 가이드, 조건문과 반복문 예제 포함 - Dart 기초 #6

eco7T 2024. 6. 7. 09:40
반응형

이번에는 앞선 변수와 데이터 타입 부분에서 살짝 맛보기는 했지만 Dart 프로그래밍 언어의 기본적인 자료구조인 List와 Map에 대해 상세히 설명하고, 이를 활용한 다양한 예제를 제공함으로써 Dart 입문자가 효율적으로 코드를 작성할 수 있도록 정리해 보겠습니다. 더불어, 조건문과 반복문의 사용법을 설명하여 Dart 프로그래밍의 기본 문법을 이해하고 활용할 수 있도록 설명해 보겠습니다.

Dart List와 Map 완벽 가이드
Dart List와 Map 완벽 가이드

 

1. Dart List

List는 Dart에서 순차적으로 정렬된 값의 컬렉션을 나타냅니다. 배열과 비슷한 개념으로, 요소에 인덱스를 통해 접근할 수 있습니다.

 

사용해야 하는 이유와 상황:

  • 데이터가 순서대로 정렬된 경우
  • 배열과 같은 자료구조가 필요한 경우
  • 특정 인덱스의 값에 빠르게 접근해야 하는 경우

문제점 및 주의점:

  • List의 크기는 고정되지 않으므로, 요소를 추가하거나 제거할 수 있지만, 성능에 영향을 미칠 수 있음
  • 잘못된 인덱스를 접근하면 에러가 발생할 수 있음

1차원 List 예제:

void main() { List<int> numbers = [1, 2, 3, 4, 5]; // 요소 접근 print(numbers[0]); // 1 출력 // 요소 추가 numbers.add(6); print(numbers); // [1, 2, 3, 4, 5, 6] 출력 // 요소 제거 numbers.removeAt(0); print(numbers); // [2, 3, 4, 5, 6] 출력 }

 

2차원 List 예제:

void main() { List<List<int>> matrix = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]; // 요소 접근 print(matrix[0][1]); // 2 출력 // 요소 수정 matrix[0][1] = 20; print(matrix); // [[1, 20, 3], [4, 5, 6], [7, 8, 9]] 출력 }


2. Dart Map

Map은 키와 값의 쌍을 저장하는 컬렉션입니다. 각 키는 유일해야 하며, 키를 통해 값에 접근할 수 있습니다.

 

사용해야 하는 이유와 상황:

  • 데이터가 키-값 쌍으로 구성된 경우
  • 빠르게 특정 키에 해당하는 값을 찾고자 하는 경우

 

문제점 및 주의점:

  • 키는 유일해야 하므로, 중복된 키를 사용하면 이전 값이 덮어써짐
  • 키를 통해서만 값에 접근할 수 있음

 

1차원 Map 예제:

void main() { Map<String, int> scores = { 'Alice': 90, 'Bob': 85, 'Charlie': 95 }; // 값 접근 print(scores['Alice']); // 90 출력 // 값 추가 scores['Dave'] = 80; print(scores); // {Alice: 90, Bob: 85, Charlie: 95, Dave: 80} 출력 // 값 제거 scores.remove('Bob'); print(scores); // {Alice: 90, Charlie: 95, Dave: 80} 출력 }

 

2차원 Map 예제:

void main() { Map<String, Map<String, int>> studentScores = { 'Alice': {'Math': 90, 'Science': 85}, 'Bob': {'Math': 80, 'Science': 88} }; // 값 접근 print(studentScores['Alice']!['Math']); // 90 출력 // 값 수정 studentScores['Alice']!['Math'] = 95; print(studentScores); // {Alice: {Math: 95, Science: 85}, Bob: {Math: 80, Science: 88}} 출력 }


List와 Map을 함께 사용하는 예제:

void main() { List<Map<String, int>> studentScores = [ {'name': 'Alice', 'score': 90}, {'name': 'Bob', 'score': 85}, {'name': 'Charlie', 'score': 95} ]; // 특정 학생의 점수 출력 for (var student in studentScores) { print('${student['name']}: ${student['score']}'); } // Alice의 점수 수정 studentScores[0]['score'] = 100; print(studentScores); // [{name: Alice, score: 100}, {name: Bob, score: 85}, {name: Charlie, score: 95}] 출력 }

 

3. 조건문

조건문은 특정 조건에 따라 다른 코드를 실행할 수 있게 하는 구조입니다.

 

사용해야 하는 이유와 상황:

  • 특정 조건을 만족할 때만 코드를 실행하고 싶을 때
  • 여러 조건에 따라 다른 동작을 수행하고 싶을 때

예제:

void main() { int score = 85; if (score >= 90) { print('A 학점'); } else if (score >= 80) { print('B 학점'); } else { print('C 학점'); } }


4. 반복문

반복문은 특정 코드를 여러 번 반복 실행할 수 있게 하는 구조입니다.


사용해야 하는 이유와 상황:

  • 반복적인 작업을 자동으로 수행할 때
  • 특정 조건을 만족할 때까지 작업을 반복하고 싶을 때

for 반복문 예제:

void main() { for (int i = 0; i < 5; i++) { print('반복: $i'); } }


while 반복문 예제:

void main() { int i = 0; while (i < 5) { print('반복: $i'); i++; } }

 

이제 Dart 프로그래밍에서 List와 Map을 어떻게 사용하는지, 그리고 조건문과 반복문을 통해 다양한 상황에서 코드를 어떻게 작성하는지에 대해 이해할 수 있을 것입니다.

반응형