Menu
Coddy logo textTech

Estado de la lista: isEmpty y isNotEmpty

Parte de la sección Lógica y Flujo del Journey de Dart de Coddy — lección 2 de 65.

Antes de trabajar con elementos de una lista, es esencial saber si tu lista realmente contiene algún elemento. Dart proporciona dos propiedades simples para comprobar el estado de una lista: isEmpty y isNotEmpty.

La propiedad isEmpty devuelve true si la lista no tiene elementos, y false si contiene al menos un elemento. La propiedad isNotEmpty funciona de la manera opuesta: devuelve true cuando la lista tiene elementos y false cuando está vacía.

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

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

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

Estas propiedades son particularmente útiles para prevenir errores al intentar acceder a elementos de una lista. Comprobar si una lista está vacía antes de usar propiedades como .first o .last te ayuda a escribir código más seguro y confiable.

challenge icon

Desafío

Fácil

Crea un programa que gestione un sistema de cola de tareas verificando si las listas de tareas están vacías o contienen elementos. Tu programa debe:

  1. Leer una entrada de cadena que represente el nombre de la cola
  2. Leer múltiples entradas de cadena que representen tareas (la entrada terminará cuando recibas una cadena vacía)
  3. Usar la propiedad isEmpty para verificar si la lista de tareas está vacía
  4. Usar la propiedad isNotEmpty para verificar si la lista de tareas contiene tareas
  5. Imprimir el estado de la cola en el formato exacto que se muestra a continuación

Por ejemplo, si el nombre de la cola es "Daily Tasks" y las tareas son "Review emails", "Attend meeting", "Write report", tu programa debería mostrar:

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

Si el nombre de la cola es "Weekend Tasks" y no se proporcionan tareas (entrada vacía), tu programa debería mostrar:

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

Tu programa debe usar tanto la propiedad isEmpty como isNotEmpty para determinar el estado de la cola. El mensaje de estado debe ser "Ready for processing" cuando existan tareas y "No tasks to process" cuando la cola esté vacía.

Hoja de referencia

Usa las propiedades isEmpty y isNotEmpty para comprobar si una lista contiene 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

Estas propiedades ayudan a prevenir errores al acceder a los elementos de la lista y hacen que el código sea más seguro y confiable.

Pruébalo tú mismo

import 'dart:io';

void main() {
  // Leer el nombre de la cola
  String? queueName = stdin.readLineSync();
  
  // Leer tareas hasta que se reciba una cadena vacía
  List<String> tasks = [];
  String? task;
  while ((task = stdin.readLineSync()) != null && task!.isNotEmpty) {
    tasks.add(task);
  }
  
  // TODO: Escribe tu código a continuación
  // Usa las propiedades tasks.isEmpty y tasks.isNotEmpty para verificar el estado de la cola
  // Determina el mensaje de estado apropiado basándote en si existen tareas
  
  // Mostrar los resultados
  print('Queue: $queueName');
  // Imprimir si tiene tareas, si está vacía, el recuento de tareas y el estado
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y Flujo