Dart 기초

tpids·2024년 9월 5일

Flutter

목록 보기
2/40

var.dart

// 문법을 실행할 수 있는 메인 구조 필요!
void main() {

  // print('테스트입니다~~');

  // 1. 숫자형 타입 - int, double, num
  // 변수를 지정할 때에는 해당하는 변수에 담길 자료형을 명확하게 명시한다!
  int a = 5; // 변수의 초기화!
  double b = 3.14;

  a = 3;

  // num : 정수형이든 실수형이든 상관없이 다 담을수 있는 자료형!
  num c = 1.17;
  num d = 8;

  c = 1; // 어떤 숫자의 타입이든 다 담을 수 있다!

  // num이라는 키워드는 dart언어에서 자료형의 의미를 담고 있으므로
  // 변수명으로 사용하는 것은 멀리 해야한다!

  print(a);
  print(b);

  // +) 변수의 타입을 확인할 수 있는 방법!
  print(c.runtimeType);
  print(b.runtimeType);

  // 2. 문자형 -> String
  String word1 = 'flutter';
  String word2 = "반갑습니다!";

  // ''' ''' -> 문자열 안에 개행을 포함할 수 있다.!
  String word3 = '''재밌는 
  플러터 
  수업''';

  print(word3);

  // 문자열 포맷팅 사용해보기!
  String sub = "flutter";
  int cnt = 1;

  print("$sub 수업 $cnt 차시");
  print("$sub수업 $cnt차시");
  print("$sub수업 ${cnt+1}차시");
  // 포맷팅에서 연산이 필요할 경우 { } 사용하여 변수와 연산식을 하나로 묶는다!

  // 3. 논리형 타입
  bool n1 = true;

  // 4. List / Set / Map =>
  List<int> list1 = [1,2,3,4];
  List<String> list2 = ['1', '2'];

  print(list1);
  print(list1[1]);

  // set 타입의 경우 순서가 없으므로 특정위치의 값을 가져올수 없다!
  Set<int> set1 = {1,2,3,4};
  print(set1);

  Map<String, int> map1 = {"1":1,"2":2,"3":3};
  print(map1["2"]);

  // 5. 키워드를 사용한 변수선언 -> var / dynamic
  // - var : 한번 변수의 데이터 타입이 결정되면, 이후로 수정이 불가능 하다!
  //   ex) int -> int(o)  /  int -> String (x)

  // - dynamic : 어떠한 타입이 들어오더라도 다 수용할 수 있는 변수 키워드!
  var num2 = 5;
  // num2 = 3.14;

  dynamic num3 =5;
  num3 = 3.14;
  num3 = "3.14";

  // 6. 타입? : null값으로 인한 오류를 방지하고 null값이 들어올수도 있음을 알려주는 타입!
  String? name = null;

}

operation.dart

void main(){

  // 1.몫 타입에 대한 연산자
  int num1 = 10;
  int num2 = 20;

  // 정수, 정수 -> 정수
  // / -> 실수형의 몫을 연산하는 연산자!
  print(num2/num1);

  double result = num2/num1;

  // ~/ -> 정수형의 몫을 연산하는 연산자!
  print(num2~/num1);

  int a = 1;
  int b = 1;

  // 2. 증감연산자 -> ++, --
  // 증감연산자의 위치에 따라 의미가 달라진다!

  a++;
  print(a);

  ++b;
  print(b);


}

조건문.dart

void main(){

  int a = 3;
  // 1. if문
  if(a>3){
    // 조건식에 해당하는 실행 문장!
    print('if문 안의 실행구조!');
  } else {
    // if문에 해당하지 않은 모든값을 가져오는 키워드! -> 조건식 필요 없다!
    print('else문 안의 실행구조!');
  }

  // 2. else if문 -> elif문
  if(a>3) {

  } else if (a>6){

  } else if (a>9){

  } else {

  }

  // 3. switch문 : true/false에 대한 결과값을 가지고 판단을 하는 구조가 아닌,
  // 실제 데이터의 값을 가지고 판단을 진행하는 조건문!
  switch(a){
    case 0:
      print("짝수");
      break; // 각각의 케이스에 대한 실행문장이 끝나면 조건문을 빠져나갈수 있도록 하는 키워드!

    case 1:
      print("홀수");
      break;

      default:
        print('잘못된 값입니다');
        break;
  }

  // switch문 연습
  //
}

반복문.dart

void main() {
  // 1. for문 -> 검사 조건에 따라 반복이 가능할 경우 반복문을 실행하는 구조!

  // 1 ~ 5 -> 1,2,3,4,5
  for (int i=1; i<= 5; i++){
    print(i);
  }

  print(1);
  print(2);
  print(3);
  print(4);
  print(5);

  // 2. for in문
  List<int> list1 = [1,2,3,4];
  List<String> list2 = ['a','b'];

  for(int a in list1){
    print(a);
  }

  // 3. while문 : 언제까지 반복이 되야하는지 정확한 범위가 없다!
  while(true){
    print('while문 반복 실행');
    break;
  }

  // 4, do - while문
  do{
    // 반복의 조건없이 무조건 한번은 실행해야하는 구조!
    print('do-while문 실행');
    break;
  }while(true);
}
profile
개발자

0개의 댓글