Menu
Coddy logo textTech

Состояние списка: isEmpty и isNotEmpty

Часть раздела Логика и управление потоком путешествия по Dart на Coddy — урок 2 из 65.

Перед работой с элементами списка важно знать, содержит ли ваш список какие-либо элементы. Dart предоставляет два простых свойства для проверки состояния списка: isEmpty и isNotEmpty.

Свойство 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

Ваша программа должна использовать оба свойства isEmpty и isNotEmpty для определения статуса очереди. Сообщение о статусе должно быть "Ready for processing", когда задачи существуют, и "No tasks to process", когда очередь пуста.

Шпаргалка

Используйте свойства isEmpty и isNotEmpty, чтобы проверить, содержит ли список элементы:

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Проверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком