Condizioni con 'every'
Fa parte della sezione Logica e flusso del percorso Dart di Coddy. Lezione 14 di 65.
Mentre any() verifica se almeno un elemento soddisfa una condizione, a volte devi controllare che tutti gli elementi di un elenco soddisfino un requisito specifico. Il metodo every() offre questa funzionalità verificando ogni singolo elemento in base alla tua condizione e restituendo true solo se tutti la soddisfano.
Il metodo every() accetta una funzione di test che restituisce true o false per ogni elemento. Se un elemento qualsiasi non supera il test, every() restituisce immediatamente false. Restituisce true solo quando tutti gli elementi superano il test.
List<int> examScores = [75, 82, 68, 91, 77];
// Controlla se tutti gli studenti hanno superato l'esame (score > 60)
bool allPassed = examScores.every((score) => score > 60);
print(allPassed); // trueQuesto metodo è particolarmente utile negli scenari di convalida in cui devi assicurarti che tutti gli elementi soddisfino determinati criteri prima di procedere. Il metodo every() interrompe il controllo non appena trova un elemento che non supera il test, rendendolo efficiente per gli elenchi di grandi dimensioni in cui è necessario che tutti gli elementi siano conformi.
Sfida
FacileCrea un programma che gestisca un sistema di controllo qualità verificando che tutti i prodotti di un lotto rispettino gli standard richiesti. Il tuo programma deve:
- Leggere una stringa che rappresenta il nome della fabbrica
- Leggere più valori interi che rappresentano i punteggi di qualità dei prodotti (l’input terminerà quando riceverai
-1) - Leggere un valore intero che rappresenta la soglia minima dello standard di qualità
- Usare il metodo
every()per verificare se tutti i punteggi dei prodotti sono maggiori o uguali alla soglia minima - Stampare i risultati del controllo qualità nel formato esatto mostrato di seguito
Per esempio, se il nome della fabbrica è "Electronics Factory", i punteggi di qualità sono 85, 92, 78, 88, 95 e la soglia minima è 75, il tuo programma dovrebbe produrre:
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 il nome della fabbrica è "Textile Mill", i punteggi di qualità sono 68, 82, 74, 91 e la soglia minima è 70, il tuo programma dovrebbe produrre:
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 il nome della fabbrica è "Food Processing", i punteggi di qualità sono 95, 98, 92 e la soglia minima è 90, il tuo programma dovrebbe produrre:
Factory: Food Processing
Quality scores: [95, 98, 92]
Minimum standard: 90
Checking if all scores >= 90
All products passed: true
Status: Batch approved for shipmentIl tuo programma deve usare il metodo every() per verificare che tutti i punteggi di qualità siano maggiori o uguali alla soglia minima. Mostra "Batch approved for shipment" se tutti i prodotti rispettano lo standard, oppure "Batch rejected - quality improvement required" se un prodotto qualsiasi non soddisfa il requisito minimo.
Provalo tu
import 'dart:io';
void main() {
// Leggi il nome della fabbrica
String? factoryName = stdin.readLineSync();
// Leggi i punteggi di qualità finché non viene incontrato -1
List<int> qualityScores = [];
while (true) {
int score = int.parse(stdin.readLineSync()!);
if (score == -1) {
break;
}
qualityScores.add(score);
}
// Leggi la soglia minima
int minThreshold = int.parse(stdin.readLineSync()!);
// TODO: Scrivi il tuo codice qui sotto
// Usa il metodo every() per verificare se tutti i punteggi soddisfano lo standard minimo
// Stampa i risultati nel formato richiesto
print('Factory: $factoryName');
print('Quality scores: $qualityScores');
print('Minimum standard: $minThreshold');
print('Checking if all scores >= $minThreshold');
// Stampa se tutti i prodotti hanno superato il controllo e lo stato finale
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Manipolazione avanzata delle liste
Proprietà delle liste: primo e ultimoStato della lista: isEmpty e isNotEmpInvertire una listaAggiungere a una lista: insertRimozione dalla lista: removeWhereRicerca in una lista: indexOfOrdinare una listaMescolare una listaRiepilogo - Organizzatore di liste4Manipolazione avanzata delle mappe
Iterare su una mappaVerificare chiavi e valoriProprietà delle mappe: chiavi e valoriAggiunta condizionale: putIfAbsentRimuovere elementi da una mappaMappe annidateRiepilogo - Aggiornamento dell'inventario2Operazioni funzionali sulle liste
Trasformare con 'map'Filtrare con 'where'Usare '.toList()'Verificare condizioni con 'any'Condizioni con 'every'Trovare con 'firstWhere'Riepilogo - Filtraggio dei dati3Insiemi
Che cos'è un insieme?Creare un insiemeAggiungere e rimuovere elementi dagli insiemiVerificare la presenza di elementi in un insiemeConvertire una lista in un insiemeUnione di insiemiIntersezione di insiemiDifferenza tra insiemiRiepilogo - Lista degli ospiti uniciEsercitati da solo: Compilatore Dart online