티스토리 뷰

반응형

📌 Dart 제어문 완벽 정리 - if, switch, for, while 문법

Dart에서 제어문(Control Flow Statements)은 프로그램의 흐름을 제어하는 중요한 기능입니다.
조건문(if, switch)과 반복문(for, while, do-while)을 사용하여 프로그램을 보다 유연하게 만들 수 있습니다.


🔹 1. 조건문 (if, if-else, else-if)

if문은 특정 조건을 검사하여 코드의 실행을 제어할 때 사용됩니다.

1️⃣ 기본적인 if 문법

void main() {
  int number = 10;
  
  if (number > 5) {
    print("5보다 큽니다.");
  }
}

출력:

5보다 큽니다.
  • if (조건)이 true이면 {} 내부의 코드가 실행됩니다.

2️⃣ if-else 문

void main() {
  int age = 17;
  
  if (age >= 18) {
    print("성인입니다.");
  } else {
    print("미성년자입니다.");
  }
}

출력:

미성년자입니다.
  • if 조건이 false이면 else 블록이 실행됩니다.

3️⃣ else-if 문 (다중 조건 검사)

void main() {
  int score = 85;
  
  if (score >= 90) {
    print("A 학점입니다.");
  } else if (score >= 80) {
    print("B 학점입니다.");
  } else if (score >= 70) {
    print("C 학점입니다.");
  } else {
    print("F 학점입니다.");
  }
}

출력:

B 학점입니다.
  • 여러 개의 조건을 검사할 때 else if를 사용합니다.

  • if 문은 반드시 true 또는 false를 반환하는 조건식을 포함해야 합니다.
  • else 블록은 선택 사항이며 필요할 때만 사용하세요.

🔹 2. Switch문

switch 문은 여러 개의 case 중 하나를 선택할 때 사용됩니다.

1️⃣ 기본적인 switch-case

void main() {
  String grade = "B";

  switch (grade) {
    case "A":
      print("우수한 성적입니다.");
      break;
    case "B":
      print("좋은 성적입니다.");
      break;
    case "C":
      print("보통 성적입니다.");
      break;
    default:
      print("성적을 알 수 없습니다.");
  }
}

출력:

좋은 성적입니다.
  • switch 문은 case에 맞는 값을 찾고 해당 블록을 실행합니다.
  • break를 사용하지 않으면 다음 case로 계속 실행됩니다.

2️⃣ default 사용 (예외 처리)

void main() {
  int number = 3;

  switch (number) {
    case 1:
      print("하나");
      break;
    case 2:
      print("둘");
      break;
    default:
      print("해당하는 숫자가 없습니다.");
  }
}

출력:

해당하는 숫자가 없습니다.
  • default는 어느 case에도 해당되지 않을 때 실행됩니다.

  • switch 문은 break가 없으면 다음 case로 계속 실행되므로 주의해야 합니다.
  • default 블록을 항상 추가하는 것이 좋습니다.

🔹 3. 반복문 (for, while, do-while)

반복문은 특정 코드 블록을 여러 번 실행할 때 사용됩니다.


🔸 1. for 문

1️⃣ 기본적인 for 문법

void main() {
  for (int i = 0; i < 5; i++) {
    print("반복 횟수: $i");
  }
}

출력:

반복 횟수: 0  
반복 횟수: 1  
반복 횟수: 2  
반복 횟수: 3  
반복 횟수: 4  
  • i = 0 : 초기값
  • i < 5 : 조건
  • i++ : 증감 연산

2️⃣ 리스트를 사용한 for-in 문

void main() {
  List<String> fruits = ["Apple", "Banana", "Cherry"];

  for (var fruit in fruits) {
    print(fruit);
  }
}

출력:

Apple  
Banana  
Cherry  
  • for-in 문을 사용하면 리스트를 쉽게 반복할 수 있습니다.

3️⃣ forEach 사용 (람다 함수 활용)

void main() {
  List<int> numbers = [10, 20, 30];

  numbers.forEach((num) => print(num * 2));
}

출력:

20  
40  
60  
  • forEach를 사용하면 리스트 요소를 간결하게 처리할 수 있습니다.

🔸 2. while 문

조건이 true인 동안 계속 실행되는 반복문입니다.

void main() {
  int i = 0;

  while (i < 5) {
    print("현재 값: $i");
    i++;
  }
}

출력:

현재 값: 0  
현재 값: 1  
현재 값: 2  
현재 값: 3  
현재 값: 4  
  • while 문은 반복 횟수가 정해지지 않았을 때 유용합니다.

🔸 3. do-while 문

최소 한 번 실행한 후 조건을 검사하는 반복문입니다.

void main() {
  int i = 0;

  do {
    print("한 번은 실행됩니다! 현재 값: $i");
    i++;
  } while (i < 5);
}

출력:

한 번은 실행됩니다! 현재 값: 0  
한 번은 실행됩니다! 현재 값: 1  
한 번은 실행됩니다! 현재 값: 2  
한 번은 실행됩니다! 현재 값: 3  
한 번은 실행됩니다! 현재 값: 4  
  • while 문과 달리 조건이 false라도 최소 한 번은 실행됩니다.

🔹 4. break & continue

1️⃣ break (반복문 탈출)

void main() {
  for (int i = 0; i < 10; i++) {
    if (i == 5) break;
    print(i);
  }
}

출력:

0  
1  
2  
3  
4  
  • i == 5일 때 break가 실행되어 반복문이 즉시 종료됩니다.

2️⃣ continue (다음 반복으로 이동)

void main() {
  for (int i = 0; i < 5; i++) {
    if (i == 2) continue;
    print(i);
  }
}

출력:

0  
1  
3  
4  
  • i == 2일 때 continue가 실행되면 print(i)가 실행되지 않고 다음 반복으로 넘어갑니다.

🛠 정리

제어문 설명

if-else 조건에 따라 코드 실행
switch-case 여러 값 중 하나 선택
for 반복문 (고정 횟수)
for-in 리스트 요소 반복
while 조건이 true이면 반복
do-while 최소 1번 실행 후 조건 검사
break 반복문 탈출
continue 현재 반복 건너뛰고 다음 반복 실행

 

반응형