Dart 조건문 개념과 실전 프로젝트 적용
이번 포스팅에서는 Flutter 개발을 위한 Dart 조건문을 정리하고, 실전 프로젝트에서 조건문을 활용하는 방법을 설명합니다.
1. 조건문(Conditional Statement)이란?
조건문이란 특정 조건이 충족될 때만 코드가 실행되도록 하는 프로그래밍 기법입니다. 예를 들어, 사용자가 버튼을 클릭했을 때 특정 메시지를 표시하거나, 로그인한 사용자만 특정 기능을 이용할 수 있도록 제한하는 경우에 사용됩니다.
📌 조건문의 종류
- if-else 문: 기본적인 조건문.
- switch 문: 여러 개의 값 중 하나를 선택하는 조건문.
2. if-else 문
if-else 문은 특정 조건을 검사하여, 참(True)일 경우 실행하고, 그렇지 않을 경우 else 블록이 실행됩니다.
📌 기본 문법
if (조건식) {
// 조건이 참(True)일 때 실행되는 코드
} else {
// 조건이 거짓(False)일 때 실행되는 코드
}
📌 예제: 숫자가 5보다 큰지 판별
int number = 3;
if (number > 5) {
print("숫자는 5보다 큽니다.");
} else {
print("숫자는 5보다 크지 않습니다.");
}
// 출력 결과: 숫자는 5보다 크지 않습니다.
3. switch 문
switch 문은 여러 개의 조건을 비교할 때 사용됩니다.
📌 기본 문법
switch (변수) {
case 값1:
// 변수의 값이 값1과 같을 때 실행할 코드
break;
case 값2:
// 변수의 값이 값2와 같을 때 실행할 코드
break;
default:
// 위의 모든 경우가 아닐 때 실행할 코드
}
📌 예제: 숫자가 1, 2, 3 중 하나인지 확인
int number = 2;
switch (number) {
case 1:
print("숫자는 1입니다.");
break;
case 2:
print("숫자는 2입니다.");
break;
case 3:
print("숫자는 3입니다.");
break;
default:
print("숫자는 1, 2, 3이 아닙니다.");
}
// 출력 결과: 숫자는 2입니다.
4. if-else vs switch
둘 다 조건문이지만, 다음과 같은 차이점이 있습니다.
구분 | if-else 문 | switch 문 |
---|---|---|
비교 대상 | 논리 조건 (예: >, <, ==) | 고정된 값 비교 (정수, 문자열 등) |
복잡한 조건 | 여러 개의 비교 가능 | 단일 변수 값 비교 |
가독성 | 비교적 간결 | 여러 케이스 처리에 유리 |
5. Flutter 프로젝트에서 조건문 활용
📌 1) 버튼 클릭 시 텍스트 변경
String message = "초기 메시지";
void updateMessage() {
setState(() {
if (message == "초기 메시지") {
message = "버튼이 클릭되었습니다!";
} else {
message = "초기 메시지";
}
});
}
ElevatedButton(
onPressed: updateMessage,
child: Text("클릭하세요"),
),
Text(message),
📌 2) switch 문을 활용한 다크 모드 변경
String theme = "light";
void changeTheme() {
setState(() {
switch (theme) {
case "light":
theme = "dark";
break;
case "dark":
theme = "light";
break;
default:
theme = "light";
}
});
}
ElevatedButton(
onPressed: changeTheme,
child: Text("테마 변경"),
),
Text("현재 테마: $theme"),
6. 카드 게임 프로젝트에 조건문 적용
이제 실전 프로젝트에서 짝 맞추기 카드 게임에 조건문을 적용합니다.
📌 1) 첫 번째 선택한 카드 저장
int firstCardIndex = -1; // 첫 번째 카드 선택 여부를 나타냄
void onCardTap(int index) {
setState(() {
if (firstCardIndex == -1) {
// 첫 번째 카드를 선택한 경우
firstCardIndex = index;
} else {
// 두 번째 카드를 선택한 경우
checkMatch(index);
}
});
}
📌 2) 두 개의 카드 비교
void checkMatch(int secondCardIndex) {
if (cardNumbers[firstCardIndex] == cardNumbers[secondCardIndex]) {
print("짝이 맞습니다!");
} else {
print("짝이 맞지 않습니다. 카드를 다시 뒤집습니다.");
}
firstCardIndex = -1; // 선택 초기화
}
📌 3) 짝이 맞지 않을 경우 카드를 뒤집기
void checkMatch(int secondCardIndex) {
setState(() {
if (cardNumbers[firstCardIndex] == cardNumbers[secondCardIndex]) {
print("짝이 맞습니다!");
} else {
Future.delayed(Duration(seconds: 1), () {
setState(() {
isFlipped[firstCardIndex] = false;
isFlipped[secondCardIndex] = false;
});
});
}
firstCardIndex = -1;
});
}
7. 결론
- 조건문을 사용하면 **특정 조건에서만 코드가 실행**되도록 만들 수 있다.
- if-else 문은 조건에 따라 코드를 실행할 때 사용.
- switch 문은 여러 개의 값 중 하나를 선택할 때 사용.
- Flutter 프로젝트에서는 **버튼 클릭, 테마 변경, 게임 로직 처리 등 다양한 곳에서 조건문을 활용**할 수 있다.
다음 시간에는 비동기(Async) 프로그래밍을 배워서 조건문을 활용하여 **비동기적인 이벤트 처리**를 구현하는 방법을 배워보자! 🚀
'스파르타 코딩 클럽 내일배움캠프 6기 > [Flutter 트랙] 앱개발 종합반' 카테고리의 다른 글
[Flutter 트랙] 앱개발 종합반 1-13 - Widget Tree 위젯 트리 (0) | 2025.03.04 |
---|---|
[Flutter 트랙] 앱개발 종합반 1-12 - 동기 / 비동기 (2) | 2025.03.04 |
[Flutter 트랙] 앱개발 종합반 1-10 - 반복문 (0) | 2025.03.04 |
[Flutter 트랙] 앱개발 종합반 1-9 - 함수 (0) | 2025.03.04 |
[Flutter 트랙] 앱개발 종합반 1-8 - 변수 (0) | 2025.03.04 |