Menu
Coddy logo textTech

리스트 상태: isEmpty 및 isNotEmpty

Coddy Dart 여정의 로직 & 흐름 섹션에 포함된 레슨 — 65개 중 2번째.

리스트 요소를 작업하기 전에, 리스트에 실제로 항목이 포함되어 있는지 확인하는 것이 필수적입니다. Dart는 리스트의 상태를 확인하기 위한 두 가지 간단한 속성을 제공합니다: isEmptyisNotEmpty.

isEmpty 속성은 리스트에 요소가 없으면 true를 반환하고, 요소가 하나 이상 포함되어 있으면 false를 반환합니다. isNotEmpty 속성은 반대로 작동합니다. 리스트에 요소가 있으면 true를 반환하고, 비어 있으면 false를 반환합니다.

List<String> emptyCart = [];
List<String> shoppingCart = ['apples', 'bread', 'milk'];

print(emptyCart.isEmpty);      // true
print(emptyCart.isNotEmpty);   // false

print(shoppingCart.isEmpty);   // false
print(shoppingCart.isNotEmpty); // true

이 속성들은 리스트 요소에 접근하려고 할 때 오류를 방지하는 데 특히 유용합니다. .first 또는 .last와 같은 속성을 사용하기 전에 리스트가 비어 있는지 확인하는 것은 더 안전하고 신뢰할 수 있는 코드를 작성하는 데 도움이 됩니다.

challenge icon

챌린지

쉬움

작업 목록이 비어 있는지 또는 항목이 포함되어 있는지 확인하여 작업 대기열 시스템을 관리하는 프로그램을 작성하세요. 프로그램은 다음을 수행해야 합니다:

  1. 대기열 이름을 나타내는 문자열 입력을 읽습니다.
  2. 작업을 나타내는 여러 문자열 입력을 읽습니다 (빈 문자열이 입력되면 입력이 종료됩니다).
  3. isEmpty 속성을 사용하여 작업 목록이 비어 있는지 확인합니다.
  4. isNotEmpty 속성을 사용하여 작업 목록에 작업이 포함되어 있는지 확인합니다.
  5. 아래에 표시된 정확한 형식으로 대기열 상태를 출력합니다.

예를 들어, 대기열 이름이 "Daily Tasks"이고 작업이 "Review emails", "Attend meeting", "Write report"인 경우, 프로그램은 다음과 같이 출력해야 합니다:

Queue: Daily Tasks
Has tasks: true
Is empty: false
Task count: 3
Status: Ready for processing

대기열 이름이 "Weekend Tasks"이고 제공된 작업이 없는 경우 (빈 입력), 프로그램은 다음과 같이 출력해야 합니다:

Queue: Weekend Tasks
Has tasks: false
Is empty: true
Task count: 0
Status: No tasks to process

프로그램은 대기열 상태를 확인하기 위해 isEmptyisNotEmpty 속성을 모두 사용해야 합니다. 상태 메시지는 작업이 존재할 때 "Ready for processing"이어야 하며, 대기열이 비어 있을 때 "No tasks to process"여야 합니다.

치트 시트

isEmptyisNotEmpty 속성을 사용하여 리스트에 요소가 포함되어 있는지 확인합니다:

List<String> emptyCart = [];
List<String> shoppingCart = ['apples', 'bread', 'milk'];

print(emptyCart.isEmpty);      // true
print(emptyCart.isNotEmpty);   // false

print(shoppingCart.isEmpty);   // false
print(shoppingCart.isNotEmpty); // true

이러한 속성들은 리스트 요소에 접근할 때 발생할 수 있는 오류를 방지하고 코드를 더 안전하고 신뢰할 수 있게 만드는 데 도움이 됩니다.

직접 해보기

import 'dart:io';

void main() {
  // 큐 이름 읽기
  String? queueName = stdin.readLineSync();
  
  // 빈 문자열이 수신될 때까지 작업 읽기
  List<String> tasks = [];
  String? task;
  while ((task = stdin.readLineSync()) != null && task!.isNotEmpty) {
    tasks.add(task);
  }
  
  // TODO: 아래에 코드를 작성하세요
  // tasks.isEmpty 및 tasks.isNotEmpty 속성을 사용하여 큐 상태를 확인하세요
  // 작업 존재 여부에 따라 적절한 상태 메시지를 결정하세요
  
  // 결과 출력
  print('Queue: $queueName');
  // 작업 보유 여부, 비어 있음 여부, 작업 수 및 상태를 출력하세요
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

로직 & 흐름의 모든 레슨