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); // trueEsse 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.
Desafio
FácilCrie 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:
- Ler uma entrada do tipo string que represente o nome da fábrica
- Ler várias entradas do tipo inteiro que representem as pontuações de qualidade dos produtos (a entrada terminará quando você receber
-1) - Ler uma entrada do tipo inteiro que represente o limite mínimo do padrão de qualidade
- Usar o método
every()para verificar se todas as pontuações dos produtos são maiores ou iguais ao limite mínimo - 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 shipmentSe 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 requiredSe 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 shipmentSeu 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
}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
1Manipulação Avançada de Listas
Propriedades de Lista: first & lastEstado da Lista: isEmpty & isNotEmptyInvertendo uma ListaAdicionando a uma Lista: insertRemoção em Listas: removeWhereBuscando em uma Lista: indexOfOrdenando uma ListaEmbaralhando uma ListaRecapitulação - Organizador de Listas4Manipulação Avançada de Mapas
Iterando sobre um MapVerificando Chaves e ValoresPropriedades do Map: keys & valuesAdição Condicional: putIfAbsentRemovendo Entradas de um MapMaps AninhadosRecapitulação - Atualização de Inventário2Operações Funcionais em Listas
Transformando com 'map'Filtrando com 'where'Usando '.toList()'Verificando Condições com 'any'Condições com 'every'Encontrando com 'firstWhere'Recapitulação - Filtragem de Dados5Projeto: Cálculo de Carrinho de Compras
Configuração do ProjetoAdicionando Itens ao Carrinho3Conjuntos
O que é um Conjunto?Criando um ConjuntoAdicionando e Removendo de ConjuntosVerificando Elementos em um ConjuntoConvertendo uma Lista para um ConjuntoUnião de ConjuntosInterseção de ConjuntosDiferença de ConjuntosRecapitulação - Lista de Convidados ÚnicosPratique por conta própria: Compilador de Dart online