Menu
Coddy logo textTech

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);  // true

Questo 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.

challenge icon

Sfida

Facile

Crea 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:

  1. Leggere una stringa che rappresenta il nome della fabbrica
  2. Leggere più valori interi che rappresentano i punteggi di qualità dei prodotti (l’input terminerà quando riceverai -1)
  3. Leggere un valore intero che rappresenta la soglia minima dello standard di qualità
  4. Usare il metodo every() per verificare se tutti i punteggi dei prodotti sono maggiori o uguali alla soglia minima
  5. 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 shipment

Se 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 required

Se 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 shipment

Il 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
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Dart online