Menu
Coddy logo textTech

Estado da Lista: isEmpty & isNotEmpty

Parte da seção Lógica & Fluxo do Journey de Dart da Coddy — lição 2 de 65.

Antes de trabalhar com elementos de lista, é essencial saber se a sua lista realmente contém algum item. Dart fornece duas propriedades simples para verificar o estado de uma lista: isEmpty e isNotEmpty.

A propriedade isEmpty retorna true se a lista não tiver elementos, e false se contiver pelo menos um elemento. A propriedade isNotEmpty funciona de maneira oposta - ela retorna true quando a lista possui elementos e false quando está vazia.

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

print(emptyCart.isEmpty);      // verdadeiro
print(emptyCart.isNotEmpty);   // falso

print(shoppingCart.isEmpty);   // falso
print(shoppingCart.isNotEmpty); // verdadeiro

Essas propriedades são particularmente úteis para evitar erros ao tentar acessar elementos de uma lista. Verificar se uma lista está vazia antes de usar propriedades como .first ou .last ajuda você a escrever um código mais seguro e confiável.

challenge icon

Desafio

Fácil

Crie um programa que gerencie um sistema de fila de tarefas, verificando se as listas de tarefas estão vazias ou contêm itens. Seu programa deve:

  1. Ler uma entrada de string representando o nome da fila
  2. Ler múltiplas entradas de string representando tarefas (a entrada terminará quando você receber uma string vazia)
  3. Usar a propriedade isEmpty para verificar se a lista de tarefas está vazia
  4. Usar a propriedade isNotEmpty para verificar se a lista de tarefas contém tarefas
  5. Imprimir o status da fila no formato exato mostrado abaixo

Por exemplo, se o nome da fila for "Daily Tasks" e as tarefas forem "Review emails", "Attend meeting", "Write report", seu programa deve exibir:

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

Se o nome da fila for "Weekend Tasks" e nenhuma tarefa for fornecida (entrada vazia), seu programa deve exibir:

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

Seu programa deve usar ambas as propriedades isEmpty e isNotEmpty para determinar o status da fila. A mensagem de status deve ser "Ready for processing" quando existirem tarefas e "No tasks to process" quando a fila estiver vazia.

Folha de consulta

Use as propriedades isEmpty e isNotEmpty para verificar se uma lista contém elementos:

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

Essas propriedades ajudam a prevenir erros ao acessar elementos da lista e tornam o código mais seguro e confiável.

Experimente você mesmo

import 'dart:io';

void main() {
  // Ler o nome da fila
  String? queueName = stdin.readLineSync();
  
  // Ler tarefas até que uma string vazia seja recebida
  List<String> tasks = [];
  String? task;
  while ((task = stdin.readLineSync()) != null && task!.isNotEmpty) {
    tasks.add(task);
  }
  
  // TODO: Escreva seu código abaixo
  // Use as propriedades tasks.isEmpty e tasks.isNotEmpty para verificar o status da fila
  // Determine a mensagem de status apropriada com base na existência de tarefas
  
  // Exibir os resultados
  print('Queue: $queueName');
  // Imprimir se tem tarefas, se está vazia, a contagem de tarefas e o status
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica & Fluxo