Foggy day

[Dart] 조건문(conditional) 본문

Flutter/Dart 문법

[Dart] 조건문(conditional)

jinhan38 2023. 3. 2. 14:48

이번 포스팅에서는 If, Swtich, 삼항연산자를 알아보겠습니다.

 

 

1. If문

코딩할 때 가장 많이 사용되는 조건문입니다. 특정 값들을 비교해서 다른 이벤트나 UI를 연출하는 등 다양한 상황에서 사용됩니다.

키워드로는 if, else if, else 세가지가 있습니다. 시작은 무조건 if로 해야되지만 if 이후에 else if나 else를 사용하는 것은 자유입니다. else는 마지막에만 올 수 있고, else 이후에 else if나 if를 사용할 수 없습니다. 

괄호는 true와 false의 값만 입력할 수 있고, true가 되면 해당 중괄호에 진입할 수 있습니다. 

형태는 아래와 같습니다. 

  void conditionalIf() {
    String value = "d";

    if (value == "a") {
      print('Conditional.conditionalIf value == "a"');
    } else if (value == "b") {
      print('Conditional.conditionalIf value == "b"');
    } else if (value == "c") {
      print('Conditional.conditionalIf value == "c"');
    } else {
      print('Conditional.conditionalIf a, b, c 중에 없습니다. 값은 $value 입니다.');
    }
  }
  
  
  콘솔
  Conditional.conditionalIf a, b, c 중에 없습니다. 값은 d 입니다.

변수 value에 d를 할당했습니다.

첫번째 조건문에서 a를 비교합니다. 그리고 만약 a가 아니라면 b를 비교합니다. 그리고 만약 b도 아니라면 c를 비교합니다. a, b, c 전부 아니라면 else 중괄호에 진입하게 됩니다. 

이 경우에는 else 중괄호에 있는 프린트가 출력됩니다. 

 

 

 

2. switch

switch문도 if문과 비슷합니다. 특정 값을 입력하고, 그 값과 동일한 경우를 체크합니다. 

사용 형태는 아래와 같습니다. 

  void conditionalSwitch() {
    String value = "e";
    switch (value) {
      case "a":
        print('Conditional.conditionalSwitch a 입니다.');
        break;
      case "b":
        print('Conditional.conditionalSwitch b 입니다.');
        break;
      case "c":
        print('Conditional.conditionalSwitch c 입니다.');
        break;
      case "d":
        print('Conditional.conditionalSwitch d 입니다.');
        break;
      default:
        print(
            'Conditional.conditionalSwitch a, b, c, d 중에 없습니다. 값은 $value 입니다.');
        break;
    }
  }
  
 
  콘솔
  Conditional.conditionalSwitch a, b, c, d 중에 없습니다. 값은 e 입니다.

switch 키워드와 괄호에 체크할 변수를 입력해줍니다.

중괄호 안에서는 이와 같은 형태를 가집니다. 

case {체크할 변수} :  
코드 입력
break;

예제에서 첫번째로 value값이 a와 같은지 체크하고, 이후에 c, d값을 체크합니다. default는 아무 조건에도 해당되지 않을 때 진입하게 됩니다. 예제에서는 value값이 e기 때문에 default에 진입했습니다. 

 

 

 

3. 삼항연산자(ternaryOperator)

삼항연산자는 간단한 if, else문과 같습니다. 소괄호와 중괄호를 사용하는 if,else문과 다르게 소괄호의 역할을 ? 가 대신 해주고, else의 역할을 : 가 대신 해줍니다. 

:를 기준으로 왼쪽이 true일 경우 반환하는 값이고, 오른쪽이 false일 경우 반환하는 값입니다. 

예제에서 a를 할당한 변수 value가 b와 같은지를 체크해주고 있습니다. 

두 값이 다르기 때문에 : 의 오른쪽에 있는 false가 bool 타입의 result 변수에 할당됩니다. 

  void ternaryOperator() {
    String value = "a";

    bool result = value == "b" ? true : false;

    // if (value == "a") {
    //   result = true;
    // } else {
    //   result = false;
    // }
    print('Conditional.ternaryOperator result : $result');
  }
  
  
  콘솔
  Conditional.ternaryOperator result : false

 

'Flutter > Dart 문법' 카테고리의 다른 글

[Dart] 함수  (0) 2023.03.02
[Dart] 반복문(for문)  (0) 2023.03.02
[Dart] Collection - List, Map, Set  (0) 2023.03.02
[Dart] 연산자, 형변환  (0) 2023.03.02
[Dart] 변수(variable)와 상수(constant)  (0) 2023.03.02