Flutter (2) - 흐름 제어문

Jan·2022년 9월 3일

Dart의 프로그램은 main 함수로부터 시작되어 아래로 진행됨.
프로그램의 실행되는 순서(흐름)을 제어하는 방법

1) 조건문

  • if문
  • 조건에 따라 실행하고 싶은 코드를 분기할 때 사용
  • 조건문은 else if 형태로 계속해서 꼬리에 꼬리를 물 수 있음.
  • 앞에서부터 하나씩 비교해서 진행하다가 하나라도 true가 되어 실행되면, 뒤에 있는 조건문은 실행되지 않음.
if (bool1) {
	// bool1이 true면 실행
} else if (bool2) {
	// bool1이 false이고, bool2가 true이면 실행
} else if (bool3) {
	// bool1과 bool2가 false이고, bool3가 true이면 실행
} else {
	// bool1, bool2, bool3가 모두 false이면 실행
}

2) AND와 OR 연산자

💡 `&&`는 AND 연산자라 불립니다. `bool1 && bool2`와 같이 좌우에 bool 값이 오는데, 두 값이 모두 `true` 일 때 전체 값을 `true`로 반환 합니다. 💡 `||`는 OR 연산자라 불립니다. `bool1 || bool2`와 같이 좌우에 bool 값이 오는데, 둘 중 하나라도 `true` 라면 전체 값을 `true`로 반환합니다.
void main() {
  // && : AND 연산자로 좌우 값이 모두 true일 때 전체를 true로 반환
  if (false && true) {
    print('&&는 하나라도 true가 아니면 실행이 안됩니다.');
  } else if (true && true) {
    print('&&는 양쪽 모두 true면 실행이 됩니다.');
  }
  
  // || : OR 연산자로 둘 중 하나만 true이면 전체를 true로 반환
  if (false || false) {
    print("||는 둘다 false면 실행이 안됩니다.");
  } else if (false || true) {
    print("||는 둘 중 하나라도 true면 실행이 됩니다.");
  }
  
  
  int temp = 15;
  bool isSummer = true;

  if (isSummer && temp < 10) { // 여름이면서 10도 미만입니까?
    print("여름 and 10도 미만");
  } else if (isSummer || temp < 10) { // 여름이거나 10도 미만입니까?
    print("여름 or 10도 미만");
  }
}

3) 반복문

반복문은 특정한 코드를 반복해서 실행하도록 흐름을 제어하는 방법으로 <for문> 이라고 불리기도 합니다.

  • 반복문 구성 1 : int i = 0i라는 변수가 0으로 시작합니다. (한 번만 실행됩니다) 2 : i < 5i의 값이 5보다 작은지 조건을 확인합니다. (false → 반복문 종료 / true → 3번) 3 : 중괄호 안쪽 영역 → 반복해 실행하는 코드들이 들어있습니다. 4 : i++i값을 1만큼 증가 시키고 2번으로 흐름이 다시 넘어갑니다.
void main() {
  // 과일 5개가 들어있는 배열의 내용을 모두 출력하려면 5번 print를 사용해야 합니다.
  List<String> fruits = ["딸기", "감", "배", "사과", "바나나"];
  print(fruits[0]);
  print(fruits[1]);
  print(fruits[2]);
  print(fruits[3]);
  print(fruits[4]);
  

  print("---- 반복문 ----");
  print("fruits.length : ${fruits.length}"); // 전체 배열의 개수

  // 반복문을 사용하면 과일의 개수에 상관없이 3줄만 입력하면 됩니다.
  for (int i = 0; i < fruits.length; i++) {
    print("$i : ${fruits[i]}"); // i가 0부터 fruits.length - 1까지로 변합니다.
  }
  
  
  print("---- for in 문 ----");
  
  // 참고로 for in문이라 불리는 다른 형태의 반복문도 있습니다.
  for (String name in fruits) {
    print(name); // fruits 배열의 원소를 차례대로 꺼냅니다.
  }
}
profile
비전공자의 웹개발 log(와 개인적 기록)

0개의 댓글