Flutter
Flutter) dart 기본 문법(변수선언, 연산자, 루프, 함수, 클래스, 비동기)
jennyiscoding
2024. 3. 30. 12:31
1. 변수선언
main() {
// 위에 Run을 클릭하면돼
// 화면 출력
print("Hello World!"); // 끝에 ;붙임.
// 변수선언
// var는 데이터에 의한 추론형 변수 선언.
var name = "유빚";
print(name);
name = "관우";
print(name);
// 상수(안바뀌는애들) 선언
const age = "Jang";
print(age);
// 정수
int intNum1 = 30;
print(intNum1);
int intNum2 = 20;
print(intNum2);
// 사칙연산
print(intNum1 + intNum2);
print(intNum1 - intNum2);
print(intNum1 * intNum2);
print(intNum1 / intNum2);
print(intNum1 % intNum2); // 나머지
print(intNum1 ~/ intNum2); // 몫
double doubleNum1 = 1.5;
double doubleNum2 = 1.2;
print(doubleNum1 + doubleNum2);
print(doubleNum1 - doubleNum2);
print(doubleNum1 * doubleNum2);
print(doubleNum1 / doubleNum2);
// 문자열
String str1 = "유비";
String str2 = '장비';
print("$str1와 $str2");
// 정수의 문자열 보간법
int intNum1a = 170;
int intNum2a = 70;
print("intNum1과 intNum2의 합은 ${intNum1a + intNum2a}");
// Boolean
bool isTrue = true;
bool isFalse = false;
print("bool은 $isTrue 와 $isFalse 만을 가진다");
// var와 dynamic
dynamic name1 = "장비";
name1 = "조자룡";
name1 = 100;
// collection
List threeKingoms = [];
threeKingoms.add('위!');
threeKingoms.add('촉!');
threeKingoms.add('오!');
print(threeKingoms);
// 수정하기
threeKingoms[0] = "먀하";
print(threeKingoms);
// 삭제하기
threeKingoms.removeAt(0);
print(threeKingoms);
// 개수구하기
print(threeKingoms.length);
// 더하기
threeKingoms.add(1);
print(threeKingoms);
// 정해진 변수타입의 데이터만 추가하기
List<String> threeKingdoms2 = [];
// threeKingdoms2.add(10); //에러가 떠!!
print(threeKingdoms2);
// 리스트 선언 시 초기값 할당
List<String> threeKingdoms3 = ['위', '촉', '오'];
print(threeKingdoms3);
// map
Map fruits = {
'apple': '사과',
'grape': '포도',
'watermelon': '수박',
};
print(fruits['apple']);
// map바꾸기
fruits['watermelon'] = "시원한수박";
print(fruits);
// 데이터 추가하기
fruits['banana'] = '바나나';
print(fruits);
Map<String, int> fruitsPrice = {
'apple': 1000,
'grape': 400,
'watermelon': 500,
};
print(fruitsPrice);
// null을 쓸수있는게 int? 임!
int applePrice = fruitsPrice['apple']!;
int sumGrapeApple = fruitsPrice['apple']! + fruitsPrice['grape']!;
print(sumGrapeApple);
String name5 = '유비';
name5 = "니나";
final String name6 = "불변";
// name6 = "변할까?"; // 에러남!! final은 불변!
const String name7 = "교장";
// name7 = "교감"; // 이것도 에러나. final과 같이
// const와 final은 뭐가 다를까?
final DateTime now1 = DateTime.now(); //현재일자, 시간이 나옴
print(now1); //클릭할때마다 다른 시간이 나오지? final은 실행시에 결정되는 값으로 쭉감.
// const DateTime now2 = DateTime.now(); // 선언조차불가. 계속 바뀌는 애는 const로 선언불가함.
// print(now2);
}
2. 연산자
main() {
// 연산자
int num = 0;
num += 1;
num++;
print(num);
num--;
num -= 1;
//optional: null safety
int? num2 = null;
print(num2);
// default
num2 ??= 1;
print(num2);
// 단항 증감 연산자
int num3 = 20;
num3 += 10;
print(num3);
// 조건 연산자
int num4 = 10;
int num5 = 5;
print(num4 < num5);
print(num4 > num5);
print(num4 <= num5);
print(num4 >= num5);
print(num4 == num5);
print(num4 != num5);
int num6 = 10;
int num7 = 12;
print(num4 > num5 && num6 == num7);
// 조건문
}
3. 루프
main() {
int sum = 0;
for (int i = 1; i <= 10; i++) {
sum += 1;
}
// print(sum);
List numList = [1, 2, 3];
for (int j in numList) {
print(j);
if (j == 2) {
break;
}
}
}
4. 함수
main() {
print(sum(1, 2));
}
sum(int x, int y) {
// 타입 써도되고 안써도 됨!
return x + y;
}
5. 조건문
main() {
int num1 = 10;
if (num1 > 10) {
print('입력한 숫자 $num1은 10보다 큰 수입니다.');
} else if (num1 < 10) {
print('입력한 숫자 $num1은 10보다 큰 수입니다.');
} else {
print('num1은 10입니다');
}
print("--End--");
int score = 85;
if (score >= 90) {
print('A학점입니다');
} else if (score >= 80) {
print('A학점입니다');
} else if (score >= 70) {
print('B학점입니다');
} else if (score >= 70) {
print('C학점입니다');
} else if (score >= 60) {
print('D학점입니다');
} else if (score >= 80) {
print('F학점입니다');
}
// 삼항연산자
int num2 = 10;
num2 > 100 ? print('100보다큼1') : print('작음1');
String result = num2 > 100 ? "큼2" : "작음2";
print(result + ": 이런식으로도 가능하다");
}
6. 클래스
class Calc {
// Field 또는 property라고 부른다. num1, num2를.
late int num1; //late: 지금 데이터 없지만 나중에 데이터 꼭줄께
late int num2;
//Constructor
Calc(num1, num2) {
// this.num1 은 위에 Field에 선언된 애들을 가르킴. 오른쪽 num1은 Calc부분에서 받은 num1
this.num1 = num1;
this.num2 = num2;
}
//Function
add() {
return num1 + num2;
}
subtract() {
return num1 - num2;
}
multiply() {
return num1 * num2;
}
}
클래스 쓰는 부분
import '6_class_Calc.dart';
main() {
Calc calc = Calc(1, 2); // 뒤에 쓰는게 생성자(Constructor)
print(calc.add());
print(calc.subtract());
print(calc.multiply());
}
8. 비동기
main() {
checkVersions();
print('End process');
}
checkVersions() async {
var version = await lookUpVersion();
print(version);
}
int lookUpVersion() {
return 10;
}