Menu
CoddyTech

使用 'every' 检查条件

本课属于 Coddy Dart 学习旅程的“逻辑与流程控制”单元。第 14 课,共 65 课。

any() 会检查是否至少有一个元素满足条件,但有时你需要确认列表中的所有元素都符合特定要求。every() 方法会根据你的条件逐一测试每个元素,只有当所有元素都通过测试时才返回 true。

every() 方法接收一个测试函数,该函数会针对每个元素返回 true 或 false。如果有任何元素未通过测试,every() 会立即返回 false。只有每个元素都通过测试时,它才会返回 true。

List<int> examScores = [75, 82, 68, 91, 77];

// 检查是否所有学生都及格(score > 60)
bool allPassed = examScores.every((score) => score > 60);
print(allPassed);  // true

这种方法在验证场景中特别有用,你需要确保所有项都符合特定条件后再继续。every() 方法一旦发现有元素未通过测试,就会立即停止检查,因此在需要确保大型列表中的所有项都符合要求时,效率很高。

challenge icon

挑战

简单

编写一个程序,通过检查一批产品是否都符合要求的标准来管理质量控制系统。你的程序应该:

  1. 读取一个表示工厂名称的字符串输入
  2. 读取多个表示产品质量评分的整数输入(收到 -1 时结束输入)
  3. 读取一个表示最低质量标准阈值的整数输入
  4. 使用 every() 方法检查所有产品评分是否都大于或等于最低阈值
  5. 按照下方所示的准确格式打印质量控制结果

例如,如果工厂名称是 "Electronics Factory",质量评分依次为 85、92、78、88、95,最低阈值为 75,你的程序应该输出:

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

如果工厂名称是 "Textile Mill",质量评分依次为 68、82、74、91,最低阈值为 70,你的程序应该输出:

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

如果工厂名称是 "Food Processing",质量评分依次为 95、98、92,最低阈值为 90,你的程序应该输出:

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

你的程序必须使用 every() 方法,验证所有质量评分是否都大于或等于最低阈值。如果所有产品都符合标准,则显示 "Batch approved for shipment";如果有任何产品未达到最低要求,则显示 "Batch rejected - quality improvement required"。

亲手试试

import 'dart:io';

void main() {
  // 读取工厂名称
  String? factoryName = stdin.readLineSync();
  
  // 读取质量评分,直到遇到 -1
  List<int> qualityScores = [];
  while (true) {
    int score = int.parse(stdin.readLineSync()!);
    if (score == -1) {
      break;
    }
    qualityScores.add(score);
  }
  
  // 读取最低阈值
  int minThreshold = int.parse(stdin.readLineSync()!);
  
  // TODO: 在下方编写你的代码
  // 使用 every() 方法检查所有评分是否达到最低标准
  
  // 按要求的格式打印结果
  print('Factory: $factoryName');
  print('Quality scores: $qualityScores');
  print('Minimum standard: $minThreshold');
  print('Checking if all scores >= $minThreshold');
  // 打印所有产品是否都通过,以及最终状态
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

逻辑与流程控制中的所有课

自己练习: Dart 在线编译器