Menu
CoddyTech

Условия с 'every'

Часть раздела Логика и управление потоком путешествия по Dart на Coddy. Урок 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