Menu
CoddyTech

Condiciones con 'every'

Parte de la sección Lógica y Flujo del Journey de Dart de Coddy. Lección 14 de 65.

Mientras que any() comprueba si al menos un elemento cumple una condición, a veces necesitas verificar que todos los elementos de una lista satisfagan un requisito específico. El método every() proporciona esta funcionalidad al comprobar cada elemento con tu condición y devolver true solo si todos la cumplen.

El método every() toma una función de prueba que devuelve true o false para cada elemento. Si algún elemento no supera la prueba, every() devuelve inmediatamente false. Solo cuando todos los elementos superan la prueba devuelve true.

List<int> examScores = [75, 82, 68, 91, 77];

// Comprueba si todos los estudiantes aprobaron (score > 60)
bool allPassed = examScores.every((score) => score > 60);
print(allPassed);  // true

Este método es especialmente útil en situaciones de validación en las que necesitas asegurarte de que todos los elementos cumplan ciertos criterios antes de continuar. El método every() deja de comprobar en cuanto encuentra un elemento que no supera la prueba, lo que lo hace eficiente para listas grandes en las que necesitas que todos cumplan los requisitos.

challenge icon

Desafío

Fácil

Crea un programa que gestione un sistema de control de calidad verificando que todos los productos de un lote cumplan los estándares requeridos. Tu programa debe:

  1. Leer una entrada de tipo cadena que represente el nombre de la fábrica
  2. Leer varias entradas de tipo entero que representen las puntuaciones de calidad de los productos (la entrada finalizará cuando recibas -1)
  3. Leer una entrada de tipo entero que represente el umbral mínimo del estándar de calidad
  4. Usar el método every() para comprobar si todas las puntuaciones de los productos son mayores o iguales al umbral mínimo
  5. Imprimir los resultados del control de calidad en el formato exacto que se muestra a continuación

Por ejemplo, si el nombre de la fábrica es "Electronics Factory", las puntuaciones de calidad son 85, 92, 78, 88, 95 y el umbral mínimo es 75, tu programa debería mostrar:

Factory: Electronics Factory
Quality scores: [85, 92, 78, 88, 95]
Minimum standard: 75
Checking if all scores >= 75
All products passed: true
Status: Batch approved for shipment

Si el nombre de la fábrica es "Textile Mill", las puntuaciones de calidad son 68, 82, 74, 91 y el umbral mínimo es 70, tu programa debería mostrar:

Factory: Textile Mill
Quality scores: [68, 82, 74, 91]
Minimum standard: 70
Checking if all scores >= 70
All products passed: false
Status: Batch rejected - quality improvement required

Si el nombre de la fábrica es "Food Processing", las puntuaciones de calidad son 95, 98, 92 y el umbral mínimo es 90, tu programa debería mostrar:

Factory: Food Processing
Quality scores: [95, 98, 92]
Minimum standard: 90
Checking if all scores >= 90
All products passed: true
Status: Batch approved for shipment

Tu programa debe usar el método every() para verificar que todas las puntuaciones de calidad sean mayores o iguales al umbral mínimo. Muestra "Batch approved for shipment" si todos los productos cumplen el estándar, o "Batch rejected - quality improvement required" si algún producto no cumple el requisito mínimo.

Pruébalo tú mismo

import 'dart:io';

void main() {
  // Lee el nombre de la fábrica
  String? factoryName = stdin.readLineSync();
  
  // Lee las puntuaciones de calidad hasta encontrar -1
  List<int> qualityScores = [];
  while (true) {
    int score = int.parse(stdin.readLineSync()!);
    if (score == -1) {
      break;
    }
    qualityScores.add(score);
  }
  
  // Lee el umbral mínimo
  int minThreshold = int.parse(stdin.readLineSync()!);
  
  // TODO: Escribe tu código a continuación
  // Usa el método every() para comprobar si todas las puntuaciones cumplen el estándar mínimo
  
  // Imprime los resultados en el formato requerido
  print('Factory: $factoryName');
  print('Quality scores: $qualityScores');
  print('Minimum standard: $minThreshold');
  print('Checking if all scores >= $minThreshold');
  // Imprime si todos los productos aprobaron y el estado final
}
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

Practica por tu cuenta: Compilador de Dart online