Menu
CoddyTech

Condições com 'every'

Parte da seção Lógica & Fluxo do Journey de Dart da Coddy. Lição 14 de 65.

Enquanto any() verifica se pelo menos um elemento atende a uma condição, às vezes você precisa verificar se todos os elementos de uma lista satisfazem um requisito específico. O método every() oferece essa funcionalidade ao testar cada elemento em relação à sua condição e retornar true somente se todos forem aprovados.

O método every() recebe uma função de teste que retorna true ou false para cada elemento. Se algum elemento não passar no teste, every() retorna imediatamente false. Ele retorna true somente quando todos os elementos passam no teste.

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

// Verifique se todos os alunos foram aprovados (score > 60)
bool allPassed = examScores.every((score) => score > 60);
print(allPassed);  // true

Esse método é particularmente útil em cenários de validação nos quais você precisa garantir que todos os itens atendam a determinados critérios antes de prosseguir. O método every() para de verificar assim que encontra um elemento que não passa no teste, o que o torna eficiente para listas grandes nas quais você precisa de conformidade universal.

challenge icon

Desafio

Fácil

Crie um programa que gerencie um sistema de controle de qualidade verificando se todos os produtos de um lote atendem aos padrões exigidos. Seu programa deve:

  1. Ler uma entrada do tipo string que represente o nome da fábrica
  2. Ler várias entradas do tipo inteiro que representem as pontuações de qualidade dos produtos (a entrada terminará quando você receber -1)
  3. Ler uma entrada do tipo inteiro que represente o limite mínimo do padrão de qualidade
  4. Usar o método every() para verificar se todas as pontuações dos produtos são maiores ou iguais ao limite mínimo
  5. Imprimir os resultados do controle de qualidade exatamente no formato mostrado abaixo

Por exemplo, se o nome da fábrica for "Electronics Factory", as pontuações de qualidade forem 85, 92, 78, 88, 95 e o limite mínimo for 75, seu programa deverá exibir:

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

Se o nome da fábrica for "Textile Mill", as pontuações de qualidade forem 68, 82, 74, 91 e o limite mínimo for 70, seu programa deverá exibir:

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

Se o nome da fábrica for "Food Processing", as pontuações de qualidade forem 95, 98, 92 e o limite mínimo for 90, seu programa deverá exibir:

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

Seu programa deve usar o método every() para verificar se todas as pontuações de qualidade são maiores ou iguais ao limite mínimo. Exiba "Batch approved for shipment" se todos os produtos atenderem ao padrão, ou "Batch rejected - quality improvement required" se algum produto não atender ao requisito mínimo.

Experimente você mesmo

import 'dart:io';

void main() {
  // Leia o nome da fábrica
  String? factoryName = stdin.readLineSync();
  
  // Leia as pontuações de qualidade até encontrar -1
  List<int> qualityScores = [];
  while (true) {
    int score = int.parse(stdin.readLineSync()!);
    if (score == -1) {
      break;
    }
    qualityScores.add(score);
  }
  
  // Leia o limite mínimo
  int minThreshold = int.parse(stdin.readLineSync()!);
  
  // TODO: Escreva seu código abaixo
  // Use o método every() para verificar se todas as pontuações atendem ao padrão mínimo
  
  // Exiba os resultados no formato exigido
  print('Factory: $factoryName');
  print('Quality scores: $qualityScores');
  print('Minimum standard: $minThreshold');
  print('Checking if all scores >= $minThreshold');
  // Exiba se todos os produtos foram aprovados e o status final
}
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

Pratique por conta própria: Compilador de Dart online