본문 바로가기

Programming/Flutter&Dart

Dart 기초 문법 (3)

1. for

void main(){

// for
  for(int i = 0; i < 10; i++){
    print(i);
  }

print("-----------------------------------");
// for문 응용
  List<int> numbers = [
    1,
    1,
    2,
    3,
    5,
    8,
  ];

// 리스트 안에 모든 원소의 합을 구하는 방법
// 1번 방법
  int number = 0;
  for(int i = 0; i < numbers.length; i++){
    number += numbers[i];
  }
  print(number);

print("-----------------------------------");
  
// 2번 방법
  int total = 0;
  for(int numberA in numbers){
    total += numberA;
  }
  print(total);
}

 

 

2번 방법에 대한 상세 해설)

numbers list 안에 있는 원소를 numberA로 치환하여 

total = total + numberA; 에 넣어준다. 

이 반복문은 numbers list에 모든 원소가 numberA로 치환되면 종료된다. 


2. while, break, continue

void main(){

// while
  
// 10부터 19까지 출력하는 while구문  
  int number = 10;
  
  while(number < 20){
    print(number);
    number ++;
  }
 print("---------------------------");
  
// do while
// 먼저 do에 있는 명령을 실행하고 while의 조건을 확인  
  
  int numberA = 10;
  
  do {
    print(numberA);
    
    numberA ++;
  } while(numberA < 20);

  print("---------------------------");
  
// break, continue
  
  int numberB = 10;
  while(numberB < 20){
    
    print(numberB);
    numberB ++;
    
    if(numberB == 15){
      break;
    }
  }
  
  print("---------------------------");
  
// continue 이후에 명령은 실행되지 않고 다음 반복으로 넘어감.  
  for(int i = 0; i < 10; i++){
    if(i == 5){
      continue;
    }
    print(i);
  }
  
}

3. enum(열거형)

// enum 선언
enum Status {
  approved,
  rejected,
  pending,
}


void main(){

// enum

  // 승인 : approved
  // 반려 : rejected
  // 대기 : pending
  
  Status status = Status.approved;
  
  if(status == Status.approved){
    
    print('승인되었습니다.');
  
  }else{
    print('반려나 대기 되었습니다.');
  }
  
  // enum type의 option 출력
  print(Status.values.toList());
}

 

 

상수 목록을 만들어 코드를 더욱 직관적으로 만들어준다.

오타를 할 실수를 줄여준다.


4. Function

// 함수

void main(){
  
  //list 선언
  List<int> testlist = [
    1,
    1,
    2,
    3,
    5,
    8,
    13,
  ];
  
  int result = addList(testlist, 1);
  print(result);
  
  print("----------------------------------");
  List<int> testlist2 = [
    10, 20, 30, 40, 50,
  ];
  
  int result2 = addList(testlist2, 2, 5);
  print(result2);
  
  print("----------------------------------");
  

  namedfunc(
    a : 3,
    c : 4,
    b : 2,
  );
    

}

// 파라미터 선언 : 자료형 + 파라미터 이름
// return이 있으면 return의 자료형을 써줘야 함.
// 파라미터를 여러개 사용해도 상관 없음
// 대괄호 안에 들어간 optional 파라미터는 있어도 되고 없어도 된다.
// 그러므로 dafault 값을 지정해주지 않으면 null 값이 들어감.

int addList(List testlist, int a, [int b = 2]){
  
  int total = 0;
  for(int number in testlist){
    total += number;
  }
  
  return total;
}

// named 파라미터
// int는 null값을 가지지 못하여 var로 처리해줌.
// 파라미터 입력시 순서가 바뀌어도 상관없고, 안써도 상관 없음.
int namedfunc({
  var a,
  var b,
  var c,
  var d,
}){
  
  print('a : $a, b : $b, c : $c, d : $d');
  return 0;
}

1. 함수 

return value가 있으면 함수 이름 앞에  return value의 자료형을 써준다. (없으면 안써줘도 된다.)

파라미터는 여러 개 사용할 수 있으며, 파라미터를 지정할 때 자료형을 써줘야 한다.

 

2. Optional parameter

required parameter 다음에 선언되어야 한다.

함수를 사용할 때 파라미터 값이 입력되지 않아도 되며, 이때 ,default 값을 미리 입력해 놓을 수 있다.

Optional parameter를 나타내는 것은 [..] 이다.

 

3. named parameter

순서가 바뀐 채로 입력되어도 상관없으며, 입력되지 않아도 된다.

named parameter를 나타내는 것은 {...} 이다.


5. typedef

void main(){
  
  add(1,2);
  substract(3, 2);
  
  Operation oper = add;
  
  oper(1,2);
  
  oper = substract;
  
  oper(3,2);
  
  // oper가 add가 됨
  calculate(1, 2, add);
  // oper가 substract가 됨
  calculate(3, 2, substract);
 
}


// typedef 선언
// 함수를 변수처럼 쓸 수 있게 해줌

typedef Operation(int x, int y);

void add(int x, int y){
  print('x 더하기 y는 ${x + y}입니다.');
}

void substract(int x, int y){
  print('x 빼기 y는 ${x - y}입니다.');
}

// 응용
void calculate(int x, int y, Operation oper){
  oper(x, y);
}

 

'Programming > Flutter&Dart' 카테고리의 다른 글

Dart 기초 문법 (4)  (0) 2022.08.08
Dart 기초 문법 정리 (2)  (0) 2022.08.04
Dart 기초 문법 정리 (1)  (0) 2022.08.03