Conditions avec 'every'
Fait partie de la section Logique & Flux du Journey Dart de Coddy — leçon 14 sur 65.
Alors que any() vérifie si au moins un élément remplit une condition, vous devez parfois vérifier que tous les éléments d'une liste satisfont à une exigence spécifique. La méthode every() fournit cette fonctionnalité en testant chaque élément par rapport à votre condition et en renvoyant true seulement s'ils réussissent tous.
La méthode every() prend une fonction de test qui renvoie true ou false pour chaque élément. Si un élément échoue au test, every() renvoie immédiatement false. C'est seulement lorsque chaque élément réussit le test qu'elle renvoie true.
List<int> examScores = [75, 82, 68, 91, 77];
// Vérifier si tous les étudiants ont réussi (score > 60)
bool allPassed = examScores.every((score) => score > 60);
print(allPassed); // trueCette méthode est particulièrement utile pour les scénarios de validation où vous devez vous assurer que tous les éléments répondent à certains critères avant de continuer. La méthode every() arrête la vérification dès qu'elle trouve un élément qui échoue au test, ce qui la rend efficace pour les listes volumineuses où vous avez besoin d'une conformité universelle.
Défi
FacileCréez un programme qui gère un système de contrôle qualité en vérifiant que tous les produits d'un lot répondent aux normes requises. Votre programme doit :
- Lire une chaîne de caractères en entrée représentant le nom de l'usine (factory name)
- Lire plusieurs entiers en entrée représentant les scores de qualité des produits (la saisie se terminera lorsque vous recevrez
-1) - Lire un entier en entrée représentant le seuil minimal de qualité standard
- Utiliser la méthode
every()pour vérifier si tous les scores des produits sont supérieurs ou égaux au seuil minimal - Afficher les résultats du contrôle qualité exactement dans le format indiqué ci-dessous
Par exemple, si le nom de l'usine est "Electronics Factory", que les scores de qualité sont 85, 92, 78, 88, 95, et que le seuil minimal est 75, votre programme doit afficher :
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 shipmentSi le nom de l'usine est "Textile Mill", que les scores de qualité sont 68, 82, 74, 91, et que le seuil minimal est 70, votre programme doit afficher :
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 requiredSi le nom de l'usine est "Food Processing", que les scores de qualité sont 95, 98, 92, et que le seuil minimal est 90, votre programme doit afficher :
Factory: Food Processing
Quality scores: [95, 98, 92]
Minimum standard: 90
Checking if all scores >= 90
All products passed: true
Status: Batch approved for shipmentVotre programme doit utiliser la méthode every() pour vérifier que tous les scores de qualité sont supérieurs ou égaux au seuil minimal. Affichez "Batch approved for shipment" si tous les produits répondent à la norme, ou "Batch rejected - quality improvement required" si un produit ne répond pas à l'exigence minimale.
Aide-mémoire
La méthode every() vérifie si tous les éléments d'une liste satisfont à une condition spécifique. Elle renvoie true uniquement si chaque élément réussit le test, et false si un seul élément échoue.
List<int> examScores = [75, 82, 68, 91, 77];
// Check if all students passed (score > 60)
bool allPassed = examScores.every((score) => score > 60);
print(allPassed); // trueLa méthode every() arrête la vérification dès qu'elle trouve un élément qui échoue au test, ce qui la rend efficace pour les grandes listes où vous avez besoin d'une conformité universelle.
Essayez vous-même
import 'dart:io';
void main() {
// Lire le nom de l'usine
String? factoryName = stdin.readLineSync();
// Lire les scores de qualité jusqu'à ce que -1 soit rencontré
List<int> qualityScores = [];
while (true) {
int score = int.parse(stdin.readLineSync()!);
if (score == -1) {
break;
}
qualityScores.add(score);
}
// Lire le seuil minimum
int minThreshold = int.parse(stdin.readLineSync()!);
// TODO: Écrivez votre code ci-dessous
// Utilisez la méthode every() pour vérifier si tous les scores respectent la norme minimale
// Afficher les résultats au format requis
print('Factory: $factoryName');
print('Quality scores: $qualityScores');
print('Minimum standard: $minThreshold');
print('Checking if all scores >= $minThreshold');
// Afficher si tous les produits ont réussi et le statut final
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique & Flux
1Manipulation avancée des listes
Propriétés de liste : first & lastÉtat de la liste : isEmpty & isNotEmptyInverser une listeAjouter à une liste : insertSuppression dans une liste : removeWhereRechercher dans une liste : indexOfTrier une listeMélanger une listeRécapitulatif - Organisateur de liste4Manipulation avancée des Maps
Itérer sur une MapVérifier les clés et les valeursPropriétés de Map : keys & valuesAjout conditionnel : putIfAbsentSupprimer des entrées d'une MapMaps imbriquéesRécapitulatif - Mise à jour de l'inventaire2Opérations fonctionnelles sur les listes
Transformer avec 'map'Filtrer avec 'where'Utiliser '.toList()'Vérifier des conditions avec 'any'Conditions avec 'every'Trouver avec 'firstWhere'Récapitulatif - Filtrage de données3Les Ensembles
Qu'est-ce qu'un ensemble ?Créer un ensembleAjouter et supprimer des éléments d'un ensembleVérifier la présence d'éléments dans un ensembleConvertir une liste en ensembleUnion d'ensemblesIntersection d'ensemblesDifférence d'ensemblesRécapitulatif - Liste d'invités uniques