1. 변수
변수란? 변수는 값을 담아두는 박스라고 생각하면 된다.
프로그램은 많은 변수들에 값을 가공하고 꺼내와서 연산하고 처리하는 결과물이라고 보면 된다.
- 변수 생성
var author = "개발하는남자";
- 변수 다양하게 생성
String stringValue = "문자열";
int intValue = 2;
bool booleanValue = false;
- 점수/시도회수 변수 선언
int score = 0;
int tryCount = 0;
- cards 빈 변수 선언
List<int> cards = [];
1-1. 타입 정의
- int
- double
- String
- bool
- List
- Set
- Map
2. 반복문
반복문이란? 반복문은 프로그래밍에 있어 아주 중요하고 아주많이 사용하는 기술이다. 말그래도 반복해서 무엇인가를 처리할때 사용하는 기술이라고 생각하면 됩니다.
- 1 ~ 10까지 더하기 나열방식
void main() {
var sum = 1+2+3+4+5+6+7+8+9+10;
print(sum); // 55
}
- 1 ~ 1000까지 더하기 반복문
void main() {
var sum =0;
for(var i =0; i<1000; i++){
sum+=i;
}
print(sum); // 499500
}
-cardWidget 반복문으로 변경
@override
Widget build(BuildContext context) {
return SingleChildScrollView(
child: Wrap(
spacing: 4,
runSpacing: 4,
children: [
for (var i = 0; i < 12; i++) CardWidget(),
],
),
);
}
- cards변수를 활용한 반복문 변경
for (var i = 0; i < cards.length; i++) CardWidget(),
- cards변수 랜덤 값 주입
List<int> cards = [1, 5, 2, 6, 3, 4, 3, 2, 6, 1, 4, 5];
- CardWidget 파라미터 전달
CardWidget(
cardNumber: cards[i],
isFlipped: true,
),
2-1. for문 구성
for문 다음 괄호 안, 3가지 영역에 각각 다음과 같은 규칙이 있다.
for( [반복 시작 시점] ; [반복 종료 시점] ; [증감값] ){
로직
}
- 반복 시작 시점 (Initialization)
• 반복이 시작될 때 단 한 번 실행됩니다.
• 주로 반복 변수를 초기화하는 데 사용됩니다.
• 예: int i = 0
- 반복 종료 시점 (Condition)
• 반복이 계속될지 여부를 결정하는 조건식입니다.
• 조건식이 참(true)이면 반복문 내의 로직이 실행되고, 거짓(false)이면 반복이 종료됩니다.
• 예: i < 10
- 증감값 (Increment/Decrement)
• 각 반복이 끝날 때마다 실행됩니다.
• 반복 변수를 증감시키거나 다른 방식으로 업데이트하는 데 사용됩니다.
• 예: i++
- 로직 (Body)
• 반복문이 실행되는 동안 실행할 코드 블록입니다.
• 조건이 참인 동안 반복적으로 실행됩니다.
2-2. 반복문의 좋류
for문은 위처럼 사용하는 기본형이 있고 변형해서 사용하는 방법도 여러 가지 존재한다.
- forEach문
- for in문
- while문
- do while문
3. 함수
함수란? 함수는 프로그램 내에서 특정 작업(이벤트)을 수행하기 위해 코드 블록 내에 비즈니스 로직을 작성하여, 원하는 값을 반환하거나 변수를 통해 데이터를 담아두는 기능을 한다.
- 함수 두수의 덧셈 예제
int add(int a, int b) {
int sum = a + b;
return sum;
}
void main() {
int result = add(3, 5);
print('결과: $result'); // 출력: 결과: 8
}
- 함수 두수의 뺄셈 예제
int substract(int a, int b) {
int sum = a - b;
return sum;
}
void main() {
int result = substract(3, 5);
int result2 = substract(5, 3);
print('결과: $result'); // 출력: 결과: -2
print('결과: $result2'); // 출력: 결과: 2
}
- 네임드 파라미터의 두수의 덧셈 함수 예제
int add({required int frontValue,required int endValue}) {
int sum = frontValue + endValue;
return sum;
}
void main() {
int result = add(frontValue : 3, endValue : 5);
print('결과: $result'); // 출력: 결과: 8
}
- 네임드 파라미터릐 두수의 뺄셈 함수 예제
int substract({required int frontValue,required int endValue}) {
int sum = frontValue - endValue;
return sum;
}
void main() {
int result = substract(frontValue : 3 , endValue : 5);
int result2 = substract(endValue : 5 , frontValue : 3);
print('결과: $result'); // 출력: 결과: -2
print('결과: $result2'); // 출력: 결과: -2
}
- 네임드 파라미터의 옵셔널한 예제
int add({required int frontValue,required int endValue, int? expansionValue}) {
int sum = frontValue + endValue + (expansionValue??0);
return sum;
}
void main() {
int result = add(frontValue : 3, endValue : 5);
int result2 = add(frontValue : 3, endValue : 5, expansionValue : 3);
print('결과: $result'); // 출력: 결과: 8
print('결과: $result2'); // 출력: 결과: 11
}
- onTapCard빈 함수 만들기
void onTapCard(){
}
- onTapCard print 함수 만들기
void onTapCard(int cardIndex){
print('$cardIndex 번째 카드를 선택하셨습니다.');
}
- onTapCard 함수 연결
CardWidget(
cardNumber: cards[i],
onTap: () {
onTapCard(i);
},
),
- cardsFlippedState 변수
List<bool> cardsFlippedState = [
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
false,
];
- cardsFlippedState 변수 CardWidget에 연결
CardWidget(
cardNumber: cards[i],
isFlipped: cardsFlippedState[i],// 추가
onTap: () {
onTapCard(i);
},
),
- onTapCard 이벤트 cardsFlippedState 변경
void onTapCard(int cardIndex) {
print('$cardIndex 번째 카드를 선택하셨습니다.');
cardsFlippedState[cardIndex] = true;
}
- onTapCard 이벤트 cardsFlippedState 변경 후 setState 호출
void onTapCard(int cardIndex) {
print('$cardIndex 번째 카드를 선택하셨습니다.');
setState(() {
cardsFlippedState[cardIndex] = true;
});
}
3-1. 함수의 구성
반환타입 함수이름(매개변수1, 매개변수2, ...) {
// 비즈니스 로직 구현부
return 반환값;
}
- 반환타입
- 함수가 반환하는 값의 타입을 명시합니다. 반환값이 없는 경우 void를 사용한다.
- 반환 타입은 변수 선언 파트에서 알아봤던 타입과 동일하다.(int,String,bool,List,Map 등…)
- 함수이름
- 함수를 호출할 때 사용하는 이름이다.
- 함수 이름은 어떤 작업을 수행하는지 비즈니스 로직을 대표할 수 있는 명확한 이름으로 작성하는 것이 중요하다.
- 매개변수
- 함수가 입력받는 값들입니다. 콤마로 구분하여 여러 개를 정의할 수 있다.
- 로직
- 함수가 수행할 작업을 정의하는 코드 블록이다.
- 반환값
- 함수가 작업을 완료한 후 호출한 곳으로 돌려주는 값입니다. return 키워드를 사용하여 반환한다.
- 반환값은 1번 반환 타입과 같은 타입의 데이터를 반환해야 한다.
'flutter앱개발과정' 카테고리의 다른 글
flutter앱개발 - StatelessWidget과 StatefulWidget (0) | 2025.02.11 |
---|---|
flutter앱개발 - 위젯 (1) | 2025.02.11 |
flutter앱개발 - Dart문법 2 (2) | 2025.02.07 |
flutter 앱개발 개발환경 세팅 - flutter doctor 명령어 이슈 대응 (0) | 2025.02.05 |
flutter앱개발 - Windows개발환경 설정 (0) | 2025.02.04 |