Menu
Coddy logo textTech

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 es necesario verificar que todos los elementos de una lista satisfacen un requisito específico. El método every() proporciona esta funcionalidad probando cada uno de los elementos con tu condición y devolviendo 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 falla la prueba, every() devuelve inmediatamente false. Solo cuando cada elemento pasa la prueba devuelve true.

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

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

Este método es particularmente útil para escenarios de validación en los que necesitas asegurarte de que todos los elementos cumplan con ciertos criterios antes de continuar. El método every() deja de comprobar tan pronto como encuentra un elemento que no supera la prueba, lo que lo hace eficiente para listas grandes donde se requiere un cumplimiento universal.

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 múltiples entradas de tipo entero que representen las puntuaciones de calidad de los productos (la entrada terminará 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 que el umbral mínimo
  5. Imprimir los resultados del control de calidad con 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 debe 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 debe 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 debe 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 que el umbral mínimo. Muestra «Lote aprobado para el envío» si todos los productos cumplen el estándar, o «Lote rechazado: se requiere mejorar la calidad» si algún producto no cumple el requisito mínimo.

Pruébalo tú mismo

import 'dart:io';

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