Menu
Coddy logo textTech

Stan listy: isEmpty i isNotEmp

Część sekcji Logika i przepływ sterowania ścieżki Dart w Coddy. Lekcja 2 z 65.

Zanim zaczniesz pracować z elementami listy, warto sprawdzić, czy lista rzeczywiście zawiera jakieś elementy. Dart udostępnia dwie proste właściwości do sprawdzania stanu listy: isEmpty i isNotEmpty.

Właściwość isEmpty zwraca wartość true, jeśli lista nie zawiera żadnych elementów, a false, jeśli zawiera co najmniej jeden element. Właściwość isNotEmpty działa odwrotnie — zwraca wartość true, gdy lista zawiera elementy, a false, gdy jest pusta.

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

Te właściwości są szczególnie przydatne do zapobiegania błędom podczas próby uzyskania dostępu do elementów listy. Sprawdzenie, czy lista jest pusta, przed użyciem właściwości takich jak .first lub .last pomaga pisać bezpieczniejszy i bardziej niezawodny kod.

challenge icon

Wyzwanie

Łatwy

Utwórz program, który zarządza systemem kolejki zadań, sprawdzając, czy listy zadań są puste, czy zawierają elementy. Twój program powinien:

  1. Odczytać ciąg znaków reprezentujący nazwę kolejki
  2. Odczytać wiele ciągów znaków reprezentujących zadania (dane wejściowe zakończą się po otrzymaniu pustego ciągu znaków)
  3. Użyć właściwości isEmpty, aby sprawdzić, czy lista zadań jest pusta
  4. Użyć właściwości isNotEmpty, aby sprawdzić, czy lista zadań zawiera zadania
  5. Wyświetlić status kolejki w dokładnym formacie pokazanym poniżej

Na przykład, jeśli nazwa kolejki to "Daily Tasks", a zadania to "Review emails", "Attend meeting", "Write report", program powinien wyświetlić:

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

Jeśli nazwa kolejki to "Weekend Tasks" i nie podano żadnych zadań (puste dane wejściowe), program powinien wyświetlić:

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

Program musi używać zarówno właściwości isEmpty, jak i isNotEmpty, aby określić status kolejki. Komunikatem statusu powinno być "Ready for processing", gdy istnieją zadania, oraz "No tasks to process", gdy kolejka jest pusta.

Spróbuj swoich sił

import 'dart:io';

void main() {
  // Wczytaj nazwę kolejki
  String? queueName = stdin.readLineSync();
  
  // Wczytuj zadania do momentu otrzymania pustego ciągu znaków
  List<String> tasks = [];
  String? task;
  while ((task = stdin.readLineSync()) != null && task!.isNotEmpty) {
    tasks.add(task);
  }
  
  // TODO: Napisz swój kod poniżej
  // Użyj właściwości tasks.isEmpty i tasks.isNotEmpty, aby sprawdzić stan kolejki
  // Określ odpowiedni komunikat o stanie w zależności od tego, czy istnieją zadania
  
  // Wyświetl wyniki
  print('Queue: $queueName');
  // Wyświetl, czy kolejka zawiera zadania, czy jest pusta, liczbę zadań i stan
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ sterowania

Poćwicz samodzielnie: Kompilator Dart online