이번에는 앞선 변수와 데이터 타입 부분에서 살짝 맛보기는 했지만 Dart 프로그래밍 언어의 기본적인 자료구조인 List와 Map에 대해 상세히 설명하고, 이를 활용한 다양한 예제를 제공함으로써 Dart 입문자가 효율적으로 코드를 작성할 수 있도록 정리해 보겠습니다. 더불어, 조건문과 반복문의 사용법을 설명하여 Dart 프로그래밍의 기본 문법을 이해하고 활용할 수 있도록 설명해 보겠습니다.
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을 어떻게 사용하는지, 그리고 조건문과 반복문을 통해 다양한 상황에서 코드를 어떻게 작성하는지에 대해 이해할 수 있을 것입니다.
'프로그래밍 언어 > Dart' 카테고리의 다른 글
Dart 객체지향 프로그래밍: 클래스와 객체 이해하기 - Dart 기초 #8 (0) | 2024.06.10 |
---|---|
Dart 프로그래밍 입문자를 위한 함수와 메소드 정의 및 사용법 - Dart 기초 #7 (0) | 2024.06.08 |
Dart 문자열 선언, 연결, 보간 및 비교 방법. Dart 프로그래밍 가이드 - Dart 기초 #5 (0) | 2024.06.05 |
Dart 연산자: 산술, 비교, 논리, 비트 연산자 사용 예제 및 설명 - Dart 기초 #4 (0) | 2024.06.04 |
Dart 변수 선언 및 데이터 타입 완벽 가이드 - Dart 기초 #3 (0) | 2024.06.03 |