Flutter에서 `if`를 사용하는 다양한 형식

pharmDev·2024년 12월 15일

Flutter에서 if는 UI 렌더링, 조건부 처리, 로직 제어 등 여러 상황에서 사용됩니다. 아래는 사용 가능한 모든 형식과 설명, 코드 예시, 그리고 주석입니다.


1. 기본 if 조건문

설명

  • 특정 조건이 참일 때만 코드를 실행합니다.
void checkLoginStatus(bool isLoggedIn) {
  // 사용자가 로그인했는지 확인
  if (isLoggedIn) {
    print('사용자가 로그인되었습니다.');
  }
}

2. if-else 조건문

설명

  • 조건이 참일 때와 거짓일 때 각각 다른 코드를 실행합니다.
void checkLoginStatus(bool isLoggedIn) {
  // 로그인 상태에 따라 다른 메시지 출력
  if (isLoggedIn) {
    print('사용자가 로그인되었습니다.');
  } else {
    print('사용자가 로그인되지 않았습니다.');
  }
}

3. if-else if-else 다중 조건문

설명

  • 여러 조건을 차례로 확인하며, 첫 번째로 참인 조건을 실행합니다.
void checkUserRole(String role) {
  // 역할(role)에 따라 메시지 출력
  if (role == 'admin') {
    print('관리자 권한이 있습니다.');
  } else if (role == 'user') {
    print('일반 사용자 권한이 있습니다.');
  } else {
    print('권한이 없습니다.');
  }
}

4. 삼항 연산자 (if 대체)

설명

  • 단순한 조건을 처리할 때 if-else를 간결하게 표현합니다.
void checkAccess(bool hasAccess) {
  // 삼항 연산자를 사용한 권한 확인
  String message = hasAccess ? '접근 허용' : '접근 거부';
  print(message);
}

5. 조건부 위젯 렌더링

설명

  • 특정 조건에 따라 UI 위젯을 렌더링합니다.

Widget build(BuildContext context) {
  bool isLoggedIn = true;

  // 조건에 따라 다른 위젯 렌더링
  return Scaffold(
    body: Center(
      child: isLoggedIn 
          ? Text('환영합니다!') 
          : Text('로그인하세요.'),
    ),
  );
}

6. if와 null-aware 연산자

설명

  • 변수의 값이 null인지 확인하고 기본값을 설정하거나 처리합니다.
void setDefaultUsername(String? username) {
  // username이 null이면 기본값 'Guest' 할당
  String displayName = username ?? 'Guest';
  print('사용자 이름: $displayName');
}

7. 리스트에서 if 사용 (리스트 컴프리헨션)

설명

  • 리스트에 조건부 데이터를 추가합니다.

Widget build(BuildContext context) {
  bool showButton = true;

  // 조건부 위젯 추가
  return Column(
    children: [
      Text('안녕하세요!'),
      if (showButton) ElevatedButton(
        onPressed: () {},
        child: Text('클릭하세요'),
      ),
    ],
  );
}

8. 반복문과 if 함께 사용

설명

  • 리스트를 순회하며 특정 조건을 처리합니다.
void printEvenNumbers(List<int> numbers) {
  // 리스트에서 짝수만 출력
  for (int number in numbers) {
    if (number % 2 == 0) {
      print('$number는 짝수입니다.');
    }
  }
}

9. 함수 반환값에서 if 사용

설명

  • 조건에 따라 반환값을 결정합니다.
String getGreeting(bool isMorning) {
  // 아침이면 '좋은 아침', 아니면 '안녕하세요' 반환
  if (isMorning) {
    return '좋은 아침!';
  }
  return '안녕하세요!';
}

10. 복합 조건 (논리 연산자 사용)

설명

  • 여러 조건을 논리 연산자(&&, ||)로 결합하여 처리합니다.
void checkEligibility(bool isAdult, bool hasPermission) {
  // 성인이고 권한이 있으면 허용
  if (isAdult && hasPermission) {
    print('접근 허용');
  } else {
    print('접근 거부');
  }
}

11. 비동기 작업에서의 if

설명

  • 비동기 작업 결과에 따라 조건을 처리합니다.
Future<void> checkNetworkStatus() async {
  bool isConnected = await checkConnection(); // 네트워크 상태 확인
  if (isConnected) {
    print('온라인 상태입니다.');
  } else {
    print('오프라인 상태입니다.');
  }
}

12. Switch-Case 대체로 if 사용

설명

  • if를 사용해 switch-case와 유사한 동작 구현.
void checkUserMode(String mode) {
  // 모드에 따라 메시지 출력
  if (mode == 'dark') {
    print('다크 모드 활성화');
  } else if (mode == 'light') {
    print('라이트 모드 활성화');
  } else {
    print('알 수 없는 모드');
  }
}

정리

Flutter에서 if는 UI 렌더링, 상태 관리, 로직 처리 등 다양한 방식으로 사용됩니다. 적절한 방식으로 if를 활용하면 코드를 더 가독성 있고 효율적으로 작성할 수 있습니다! 😊

profile
코딩을 배우는 초보

0개의 댓글