الشروط باستخدام '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الـ Maps المتداخلةمراجعة - تحديث المخزون2عمليات القوائم الوظيفية
التحويل باستخدام 'map'التصفية باستخدام 'where'استخدام '.toList()'التحقق من الشروط باستخدام 'any'الشروط باستخدام 'every'البحث باستخدام 'firstWhere'مراجعة - تصفية البيانات5مشروع: حاسبة عربة التسوق
إعداد المشروعإضافة العناصر إلى العربة3المجموعات
ما هي المجموعة؟إنشاء مجموعةالإضافة والحذف من المجموعاتالتحقق من وجود عناصر في المجموعةتحويل قائمة إلى مجموعةاتحاد المجموعاتتقاطع المجموعاتالفرق بين المجموعاتمراجعة - قائمة ضيوف فريدةتدرّب بنفسك: مترجم Dart عبر الإنترنت