Menu
CoddyTech

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 verificare che tutti gli elementi di una lista soddisfino un requisito specifico. Il metodo every() offre questa funzionalità verificando ogni singolo elemento rispetto 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];

// Verifica 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, risultando efficiente per gli elenchi lunghi in cui è necessario garantire la conformità universale.

challenge icon

Sfida

Facile

Crea un programma che gestisca un sistema di controllo qualità verificando che tutti i prodotti di un lotto soddisfino gli standard richiesti. Il programma deve:

  1. Leggere una stringa in input che rappresenta il nome della fabbrica
  2. Leggere più valori interi in input che rappresentano i punteggi di qualità dei prodotti (l'input terminerà quando ricevi -1)
  3. Leggere un valore intero in input 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 qui sotto

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 programma dovrebbe produrre questo output:

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 programma dovrebbe produrre questo output:

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 programma dovrebbe produrre questo output:

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 programma deve usare il metodo every() per verificare che tutti i punteggi di qualità siano maggiori o uguali alla soglia minima. Visualizza "Batch approved for shipment" se tutti i prodotti soddisfano 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