Dart (2) - 조건문, 반복문, 함수

소밍·2023년 6월 28일
0
post-thumbnail

if문

void main(){
	int number = 3;

    if(number % 3 == 0){
    	print('나머지가 0입니다');
    }else if(number % 3 == 1){
    	print('나머지가 1입니다');
    }else{
    	print('나머지가 2입니다.');
    };
}

switch문

void main(){
	int number = 3;

    switch(number % 3){
    	case 0:
        	print('나머지가 0입니다');
            break;

        case 1:
        	print('나머지가 1입니다');
            break;

        default:
        	print('나머지가 2입니다');
            break;
    };
}

loop

for loop

void main(){
    int total = 0;

    List<int> numbers = [1,2,3,4,5,6];

    for(int i=0; i<numbers.length; i++){
      total += numbers[i];
    };

    print(total); // 21
}

for in loop

void main(){
    int total = 0;

    List<int> numbers = [1,2,3,4,5,6];

    for(int number in numbers){
    	total += number;
    };

    print(total); // 21
}

while loop

void main(){
	int total = 0;

    while(total < 10){ // 조건 설정 유의
    	total += 1;
    };

    print(total); // 10
}

do while loop - 잘 안씀

void main(){
	int total = 0;

    do{
    	total += 1;
    } while(total < 10);

    print(total); // 10
}

break - 루프를 통채로 종료

void main(){
	int total = 0;
    while(total < 10){
    	total += 1;

        if(total == 5){ // total이 5면 루프를 나가버려..
        	break;
        }
    }
    print(total);
}

continue - 현재 실행하는 루프만 취소

void main(){
	for(int i=0; i<10; i++){
        if(i==5){ // i가 5면 현재 루프를 종료하고 다음 루프로 넘어감
            continue;
        }
      print(i); // 1,2,3,4,6,7,8,9
    }
}

enum

정확히 enum으로 선언한 값만 사용한다는 것을 알려줄 수 있음
오타를 내면 바로 에러가 나옴
타입을 강제할 수 있음

enum Status{
	approved, // 승인
    pending, // 대기
    rejected, // 거절
}

void main(){
	Status status = Status.pending;

    if(status == Status.approved){
    	print('승인입니다.');
    }else if(status == Status.pending){
    	print('대기입니다.');
    }else{
    	print('거절입니다.');
    }
}

함수

positional parameter

순서가 중요한 파라미터

void main(){ // 메인함수는 자동으로 실행되는 함수
	addNumbers(20,30,40); // 짝수입니다
}

addNumbers(int x,int y,int z){
	int sum = x+y+z;

    if(sum%2 == 0){
    	print('짝수입니다');
    }else{
    	print('홀수입니다');
    };
}

optional parameter

있어도 되고 없어도 되는 파라미터

void main(){ // 메인함수는 자동으로 실행되는 함수
	addNumbers(20); // 짝수입니다
}

addNumbers(int x,[int y,int z]){ // 다른 함수는 직접 호출해야함
	int sum = x+y+z;

    if(sum%2 == 0){
    	print('짝수입니다');
    }else{
    	print('홀수입니다');
    };
}
void main(){
	addNumbers(20);
}

addNumbers(int x,[int y = 20, int z = 30]){ // 기본값 설정
	int sum = x+y+z;

    if(sum%2 == 0){
    	print('짝수입니다');
    }else{
    	print('홀수입니다');
    };
}

named parameter

이름이 있는 파라미터, 순서는 중요하지 않다.

void main(){
	addNumbers(y:20, x:10, z:30);
    addNumbers(x:10, y:20, z:30);
}

addNumbers({
	required int x,
    required int y,
    required int z,
}){
	int sum = x + y + z;

    print('x : $x');
    print('y : $y');
    print('z : $z');

    if(sum % 2 == 0){
    	print('짝수입니다.');
    }else{
    	print('홀수입니다.');
    }
}

named parameter에서 optional parameter 하는 방법

  • required를 지우면 된다.
void main(){
	addNumbers(y:20, x:10);
    addNumbers(x:10, y:20, z:50);
}

addNumbers({
	required int x,
    required int y,
    int z = 30, // 기본값 넣어주기
}){
	int sum = x + y + z;

    print('x : $x');
    print('y : $y');
    print('z : $z');

    if(sum % 2 == 0){
    	print('짝수입니다.');
    }else{
    	print('홀수입니다.');
    }
}

void?

void main(){
	int result = addNumbers(y:20, x:10);
    int result2 = addNumbers(x:10, y:20, z:50);

    print('result : $result');
    print('result2 : $result2');

    print('sum : ${result+result2}');
}

int addNumbers({
	required int x,
    required int y,
    int z = 30, // 기본값 넣어주기
}){
	int sum = x + y + z;

    print('x : $x');
    print('y : $y');
    print('z : $z');

    if(sum % 2 == 0){
    	print('짝수입니다.');
    }else{
    	print('홀수입니다.');
    }

    return sum;
}

arrow function

void main(){
	int result = addNumbers(y:20, x:10);
    int result2 = addNumbers(x:10, y:20, z:50);

    print('result : $result');
    print('result2 : $result2');

    print('sum : ${result+result2}');
}

int addNumbers({
	required int x,
    required int y,
    int z = 30, // 기본값 넣어주기
})=> x+y+z;

typedef

  • 함수에 바디가 없음
void main(){
	Operation operation = add;
    int result = operation(10,20,30);

    print(result); //60

    operation = substract;
    int result2 = operation(10,20,30);
    print(result2); //-40

    int result3 = calculate(30,40,50, add);
    print(result3); //120

    int result4 = calculate(40,50,60, substract);
    print(result4); //-70
}

// signature
typedef Operation = int Function(int x, int y, int z);

// 시그니처와 부합하는 함수 선언
int add(int x, int y, int z) => x+y+z;
int subtract(int x, int y, int z) => x-y-z;
int calculate(int x, int y, int z, Operation operation){
	return operation(x,y,z);
}
profile
생각이 길면 용기는 사라진다.

0개의 댓글

관련 채용 정보