Advenced

변수의 범위 Scope

실행 블록 { }과 지역 변수 Local

ex) 하위 블록에서 상위 실행 블록 값을 확인해 보세요.

void main() {// main() 블록 시작
  int i = 10;  

  {// 블록 시작

    // 상위 블록의 변수 값 사용 가능
    print(i);  

  }// 블록 끝

  print(i);  
}// main() 블록 끝

ex) 하위 블록에서 선언한 변수 값을 상위 실행 블록에서 확인해 보세요.

void main() {
  // main() 블록 시작  

  { // 블록 시작
    int i = 10;

    print(i);
  } // 블록 끝

  // 하위 블록의 변수 값 사용 가능 : Error
  print(i);
}// main() 블록 끝

여러개의 값 저장하는 데이터 타입

List : [ ]

선언 및 초기화

ex) 문자열 name변수와 정수형 age변수를 만들고 초기화 보세요.

void main() {

  String name = 'hong';
  int age = 22;

}

ex) 리스트 변수를 만들고 초기화 보세요.

void main() {

  List Member = ['hong', 22];  
}

ex) 리스트를 선언하고 name, age값으로 초기화 보세요.

void main() {
  String name = 'hong';
  int age = 22;

  List Member = [name, age];
}

ex) 이름 3개를 대입할 문자열 변수를 선언하고 초기화 보세요.

void main() {

  String name1 = 'hong';
  String name2 = 'kim';
  String name3 = 'lee';

}

ex) 이름 3개를 대입할 문자열 리스트를 선언하고 초기화 보세요.

void main() {
  String name1 = 'hong';
  String name2 = 'kim';
  String name3 = 'lee';

  // 다른 데이터 타입 대입 가능
  List nameList1 = [name1, name2, name3];

  // String 데이터 타입 만 대입 가능
  List<String> nameList2 = [name1, name2, name3];

}

데이터 추가 하기 : add()

ex) 기존 이름 리스트에 추가로 이름을 넣어 보세요.

void main() {
  String name1 = 'hong';
  String name2 = 'kim';
  String name3 = 'lee';

  // String 데이터 타입 만 대입 가능
  List<String> nameList = [name1, name2, name3];

  String name4 = 'park';
  nameList.add(name4);
  print(nameList);
}

데이터 불러오기 : 정수 Index

ex) 나이 3개를 대입할 정수 리스트를 선언하고 초기화 후 그 값을 print()로 출력 해 보세요.

void main() {
  List<int> ageList = [10, 20, 30];

  print(ageList [0]);
  print(ageList [1]);
  print(ageList [2]);
}

ex) 정수 3개를 대입할 정수 리스트를 선언하고 초기화 후 그 값을 정수 변수에 대입 후 출력 해 보세요.

void main() {
  List<int> ageList = [10, 20, 30];

  int age1 = ageList [0];
  int age2 = ageList [1];
  int age3 = ageList [2];

  print(age1);
  print(age2);
  print(age3);
}

Map : { key : value }

선언 및 초기화

ex) 이름 3개를 대입할 Map을 선언하고 초기화 보세요.

void main() {

  String name1 = 'hong';
  String name2 = 'kim';
  String name3 = 'lee';

  // 다른 데이터 타입 대입 가능
  Map nameMap = {
    'name1' : name1,
    'name2' : name2,
    'name3' : name3
  };  

}

ex) 나이 3개를 대입할 문자열 kye와 정수형 값 Map을 선언하고 초기화 보세요.

void main() {

  // String key, int 값 만 대입 가능
  Map<String, int> nameMap  = {
    'age1' : 10,
    'age2' : 20,
    'age3' : 30
  };  

}

ex) 이름과 나이를 대입할 Map을 선언하고 초기화 보세요.

void main() {

  // String key, int 값 만 대입 가능
  Map<String, int> ageMap  = {
    'age1' : 10,
    'age2' : 20,
    'age3' : 30
  };  

}

데이터 추가 하기 : [새로운 key] = 추가 데이터

ex) 기존 맵 Map에 추가로 나이를 넣어 보세요.

void main() {

  // String key, int 값 만 대입 가능
  Map<String, int> ageMap  = {
    'age1' : 10,
    'age2' : 20,
    'age3' : 30
  };  
  // 추가
  ageMap['age4'] = 40;

  print(ageMap);
}

데이터 불러오기 : [key]

ex) 정수 나이 3개를 대입할 Map를 선언하고 초기화 후 그 값을 print()로 출력 해 보세요.

void main() {
  // String key, int 값 만 대입 가능
  Map<String, int> ageMap = {
    'age1': 10, 
    'age2': 20,
    'age3': 30
  };  

  print(ageMap['age1']);
  print(ageMap['age2']);
  print(ageMap['age3']);
}

ex) 정수 나이 3개를 대입할 Map를 선언하고 초기화 후 그 값을 정수 변수에 대입 후 출력 해 보세요.

void main() {
  Map<String, int> ageMap = {
    'age1': 10, 
    'age2': 20,
    'age3': 30
  };  

  int age1 = ageList ['age1'];
  int age2 = ageList ['age2'];
  int age3 = ageList ['age3'];

  print(age1);
  print(age2);
  print(age3);
}