IMCAT.DEV
로그인 가입
Dart 입문 문법

Dart 제어문 (if, switch)

Dart 제어문 (if, switch) — 초급

제어문 (if, switch)

1. 도입 (왜 배워야 하는가)

프로그래밍에서 제어문은 프로그램의 흐름을 결정짓는 중요한 요소입니다. 조건에 따라 다른 경로로 진행하거나, 특정 값에 따라 분기하는 기능을 제공하므로, 제어문을 활용하지 않으면 복잡한 로직을 구현하기 어려워집니다. 예를 들어, 쇼핑몰에서 사용자가 장바구니에 추가한 상품의 가격에 따라 할인율을 적용할 때, 제어문이 필요합니다. 제어문을 모르면, 프로그램이 특정 조건을 인식하지 못해 잘못된 결과를 출력하거나, 아예 실행이 되지 않는 상황이 벌어질 수 있습니다.

2. 핵심 개념 설명

2.1 if 문

if 문은 주어진 조건이 참(true)일 때 특정 코드를 실행하는 제어문입니다. 마치 "비가 오면 우산을 챙기기"와 같은 조건부 행동을 설정하는 것입니다.

2.2 switch 문

switch 문은 여러 조건 중 하나를 선택하여 실행할 수 있도록 도와주는 제어문입니다. 이는 "음식을 고를 때 메뉴를 보고 선택하기"와 같은 상황을 나타냅니다.
용어설명
조건문특정 조건에 따라 실행할 코드를 결정하는 문
분기문여러 가능한 선택지 중 하나를 선택하는 문

3. 기본 코드 예제

3.1 if 문 예제

void main() {
  int score = 85;

  if (score >= 90) {
    print("A");
  } else if (score >= 80) {
    print("B");
  } else {
    print("C");
  }
}
  • 실행 결과: B
  • 동작 설명:
  • - int score = 85;: 점수를 85로 설정합니다. - if (score >= 90): 점수가 90 이상인지 확인합니다. (false) - else if (score >= 80): 점수가 80 이상인지 확인합니다. (true) - print("B");: 조건이 참이므로 "B"를 출력합니다.

    3.2 switch 문 예제

    void main() {
      String fruit = "사과";
    
      switch (fruit) {
        case "바나나":
          print("바나나입니다.");
          break;
        case "사과":
          print("사과입니다.");
          break;
        default:
          print("알 수 없는 과일입니다.");
      }
    }
  • 실행 결과: 사과입니다.
  • 동작 설명:
  • - String fruit = "사과";: 과일 변수를 "사과"로 설정합니다. - switch (fruit): fruit 변수의 값을 확인합니다. - case "사과":: 과일이 "사과"인지 확인합니다. (true) - print("사과입니다.");: 조건이 참이므로 "사과입니다."를 출력합니다.

    4. 실전 활용 예제

    4.1 쇼핑몰 장바구니 할인 적용

    쇼핑몰에서 사용자가 장바구니에 담긴 상품의 총 금액에 따라 할인율을 적용할 수 있습니다.

    void main() {
      double totalAmount = 15000; // 총 금액
    
      if (totalAmount > 20000) {
        print("10% 할인 적용");
      } else if (totalAmount > 10000) {
        print("5% 할인 적용");
      } else {
        print("할인 없음");
      }
    }
  • 이 코드에서 사용자의 총 금액에 따라 다르게 할인 메시지를 출력합니다.
  • 4.2 사용자 등급에 따른 서비스 제공

    사용자의 등급에 따라 제공되는 서비스를 다르게 설정할 수 있습니다.

    void main() {
      String userType = "VIP";
    
      switch (userType) {
        case "일반":
          print("기본 서비스 제공");
          break;
        case "프리미엄":
          print("프리미엄 서비스 제공");
          break;
        case "VIP":
          print("VIP 서비스 제공");
          break;
        default:
          print("알 수 없는 사용자 등급입니다.");
      }
    }
  • 이 코드에서는 사용자의 등급에 따라 다른 서비스를 제공합니다.
  • 5. 흔한 실수와 주의사항

    5.1 if 문에서 조건 누락

    잘못된 코드:

    if (score = 90) { // 잘못: '='는 대입 연산자입니다.
      print("A");
    }

    올바른 코드:

    if (score  90) { // 올바른: ''는 비교 연산자입니다.
      print("A");
    }

    5.2 switch 문에서 break 누락

    잘못된 코드:

    switch (fruit) {
      case "사과":
        print("사과입니다.");
      case "바나나":
        print("바나나입니다."); // break가 없으면 이어서 실행됨
    }

    올바른 코드:

    switch (fruit) {
      case "사과":
        print("사과입니다.");
        break; // break 추가
      case "바나나":
        print("바나나입니다.");
        break;
    }

    6. 정리

  • 제어문은 프로그램의 흐름을 결정하는 필수 요소입니다.
  • if 문은 조건에 따라 실행되는 코드를 결정합니다.
  • switch 문은 여러 조건 중 하나를 선택하여 실행합니다.
  • 조건을 비교할 때는 == 연산자를 사용해야 합니다.
  • switch 문에서 각 케이스 끝에 break를 추가하는 것을 잊지 말아야 합니다.

다음에 학습하면 좋은 주제는 반복문 (for, while)입니다. 반복문을 사용하여 같은 작업을 여러 번 수행하는 방법을 알아보면, 더 복잡한 로직을 구현할 수 있게 됩니다.