Условия с '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() прекращает проверку, как только находит элемент, не прошедший тест, что делает его эффективным для больших списков, в которых требуется соответствие всех элементов.
Задание
ЛегкоСоздай программу, которая управляет системой контроля качества, проверяя, что все продукты в партии соответствуют установленным стандартам. Программа должна:
- Считать строковое значение, представляющее название фабрики
- Считать несколько целых чисел, представляющих оценки качества продуктов (ввод завершится, когда ты получишь
-1) - Считать целое число, представляющее минимальный пороговый стандарт качества
- Использовать метод
every(), чтобы проверить, что все оценки продуктов больше или равны минимальному порогу - Вывести результаты контроля качества точно в формате, показанном ниже
Например, если название фабрики — "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');
// Выведите, прошли ли все продукты проверку, и итоговый статус
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Продвинутая работа со списками
Свойства списка: first и lastСостояние списка: isEmpty и isNotEmptyРазворот спискаДобавление в список: insertУдаление из списка: removeWhereПоиск в списке: indexOfСортировка спискаПеремешивание спискаИтоги — Органайзер списков4Продвинутая работа с Map
Итерация по MapПроверка ключей и значенийСвойства Map: keys и valuesУсловное добавление: putIfAbsentУдаление записей из MapВложенные MapИтоги — Обновление инвентаря2Функциональные операции со списками
Преобразование с помощью 'map'Фильтрация с помощью 'where'Использование '.toList()'Проверка условий с помощью 'any'Условия с 'every'Поиск с помощью 'firstWhere'Повторение — фильтрация данных5Проект: Калькулятор корзины
Настройка проектаДобавление товаров в корзину3Множества
Что такое множество?Создание множестваДобавление и удаление элементовПроверка наличия элементов в множествеПреобразование списка в множествоОбъединение множествПересечение множествРазность множествИтоги: уникальный список гостейПотренируйтесь самостоятельно: Онлайн-компилятор Dart