지식/Flutter

Dart 조건 분기

ZeroAct 2023. 1. 23.
728x90
반응형

if else 문이다

이 이상 설명이 필요하지 않은 것 같다.

때로는 새로운 언어를 배울 때 그냥 그냥 넘어가는 것도 좋은 것 같다

 

Conditional Expression

은 짚고 넘어가자.

간단한 조건 로직의 경우 한 문장으로 쓸 수 있다.

 

condition ? expr1 : expr2

condition 이 만족하는 경우 expr1 을

아닌경우 expr2 를 수행(리턴)한다.

 

expr1 ?? expr2

expr1 값이 null 이 아니라면 expr1 을

null 이라면 expr2 를 수행(리턴)한다.

 

상황에 따라 잘 골라쓰면 될 것 같다.

예상하기로는

우선순위가 고려되는 로직의 경우 ?? 구문을 쓰는 것이 훨씬 가독성이 좋을 것 같다.

반대로 우선순위가 없는 단순 조건 분기의 경우에는 ? : 를 쓰는 것이 좋을 것 같다.

 

Switch and case

c 언어의 switch 문과 사용법이 동일하다.

var command = 'OPEN';
switch (command) {
  case 'CLOSED':
    executeClosed();
    break;
  case 'PENDING':
    executePending();
    break;
  case 'APPROVED':
    executeApproved();
    break;
  case 'DENIED':
    executeDenied();
    break;
  case 'OPEN':
    executeOpen();
    break;
  default:
    executeUnknown();
}

switch () 괄호안에 어떤 변수를 기준으로 분기할 것인지를 정해주고

각 case 와 == 인 경우 case 문의 내용이 수행된다.

그리고 case 마지막에는 꼭 break; 을 넣어줘야한다.

(c 에서는 break 없이도 동작했던 것 같은데...)

 

만약 여러 분기에서 조건을 걸고 싶다면 continue 를 사용할 수 있다.

var command = 'CLOSED';
switch (command) {
  case 'CLOSED':
    executeClosed();
    continue nowClosed;
  // Continues executing at the nowClosed label.

  nowClosed:
  case 'NOW_CLOSED':
    // Runs for both CLOSED and NOW_CLOSED.
    executeNowClosed();
    break;
}

좋은 코드 인지는 모르겠지만 유즈 케이스가 아예 없지는 않을 것 같긴하다.

728x90
반응형

'지식 > Flutter' 카테고리의 다른 글

[Flutter] 개요  (0) 2023.01.29
Dart 반복문  (0) 2023.01.23
Dart functions  (0) 2023.01.23
Dart Final 과 Const  (0) 2023.01.21
Dart 자료형  (1) 2023.01.21

댓글