Flutter/Dart

Dart 조건문 ( if, if - else, if - else if - else, switch )

오늘도개발 2023. 4. 19. 15:44

 

 1. if 문

 

 - if (조건) { 실행; } 으로 Java와 유사하게 기본적인 if 문을 작성할 수 있다.

 

    Ex> int num = 4 ; if(num - 2 == 2){ print('조건문 실행');}  

 

 

 2. if - else 문

 

 - if( 조건 ){ 실행; }else{ 실행; } 으로 Java와 유사하게 기본적인 if-else 문을 작성할 수 있다.

 

 - it 뒤 조건이 일 때, if문 뒤에 {} 안에 문장 실행 조건이 거짓일 때, else 뒤 {} 안의 문장 실행된다.

   

     Ex> int num = 4 ; if(num - 2 == 3){ print('맞습니다');}else{ print('틀렸습니다'); }  

 

 

 3. if - else if - else 문

 

 - if( 조건 ){ 실행; }else if( 조건 ){ 실행; } else { 실행; } 처럼 if 와 else if, else 를 같이 쓸 수 있다.

 

 - 첫번째 if 문의 조건을 실행한 후, 거짓일 경우 두번째 if 문이 실행된다. 두번째 if 문도 거짓일 때에는 else 문이 실행된다.  각 if 문 뒤에 조건이 참인 경우에는 뒤에 { 실행; } 부분만 실행된 후 이후 else if/ else 문은 실행되지 않는다.

 

    Ex> int num = 4 ; if(num  == 3){ print('num은 3 입니다');}else if(num  == 4){ print('num은 4 입니다'); } else {print('num은 3과 4가 아닙니다');}

 

 

void main(List<String> arguments) {

  // if 문 단독사용
  if (1 == 1) {
    print('if문 실행');
  }

  // if-else 문 단독사용
  if (1 == 2) {

  } else {
    print('else문 실행');
  }

  // if - else if - else 문 단독사용

  if (1 == 2) {
    
  } else if (2 == 2) {

    print('else if 문 실행');

  } else {

  }

}

 

 4. switch 문

 

 - switch( 변수 ) { case 값1: 실행문; break; case 값2: 실행문; break; default:  실행문;} 처럼 사용할 수 있다. 

 

    Ex> int num = 2; switch(num + 1) { case 1 : print('결과는 1입니다'); case 2 : print('결과는 2입니다'); case 3 : print('결과는 3입니다'); default :  print('결과는 1,2,3이 아닙니다');}

 

 - switch 문 초창기 C 언어에서 else if 를 지원하지 않을 때, if 문이 다중으로 중첩되면서 가독성이 떨어져( {} 가 많아서 어디가 어딘지 혼동됨, else 조건을 본인이 생각하는 if 문 말고 다른 부분에 겹쳐짐, 타이핑이 까다로움 ) switch 문을 사용하였지만 이후 다른 언어 에서 else if 문을 지원하면서 동일하지만 다른 표현 의 문법으로 남음

 

 - 메뉴 선택 1,2,3,4,5 등 특정 case가 정확하게 정해진 경우 else if 문 보다 switch 문이 작성하기 편하기 때문에 특정한 경우 사용하는 것이 좋다. ( 컴파일러에 따라 else if 문보다 switch 문의 속도가 더 빠른 경우도 있음; if 조건문은 기본적으로 프로그램 실행중 실행이 분기되기 때문에 분기가 일어나면 속도가 저하된다. 그러므로 특정 컴파일러에서는 switch 문과 else if 문에서 다른 실행 방식이 되는 경우 성능의 차이가 발생한다.)

 

void main(List<String> arguments) {
  
  int num = 3;

  switch (num) {
    case 1:
      break;

    case 2:
      break;

    case 3:
      print('num이 3 이므로 실행');

      break;

    default:
      print('if 문의 else 와 유사');

      break;
  }

  if (num == 1) {

  } else if (num == 2) {

  } else if (num == 3) {

    print('num이 3 이므로 실행');

  } else {

    print('switch 문의 default 와 유사');

  }

}