الشروط باستخدام 'every'
جزء من قسم Logic & Flow في رحلة Dart على Coddy — الدرس 14 من 65.
بينما يتحقق any() مما إذا كان عنصر واحد على الأقل يستوفي شرطًا معينًا، فإنك تحتاج أحيانًا إلى التحقق من أن جميع العناصر في القائمة تستوفي متطلبًا محددًا. توفر الطريقة every() هذه الوظيفة من خلال اختبار كل عنصر على حدة مقابل الشرط الخاص بك، ولا ترجع true إلا إذا اجتازت جميع العناصر الاختبار.
تأخذ الطريقة every() دالة اختبار تُرجع true أو false لكل عنصر. إذا فشل أي عنصر في الاختبار، فإن every() تُرجع false على الفور. وفقط عندما تجتاز جميع العناصر الاختبار، فإنها تُرجع true.
List<int> examScores = [75, 82, 68, 91, 77];
// التحقق مما إذا كان جميع الطلاب قد نجحوا (الدرجة > 60)
bool allPassed = examScores.every((score) => score > 60);
print(allPassed); // trueهذه الطريقة مفيدة بشكل خاص لسيناريوهات التحقق حيث تحتاج إلى التأكد من أن جميع العناصر تستوفي معايير معينة قبل المتابعة. تتوقف الطريقة every() عن التحقق بمجرد العثور على عنصر يفشل في الاختبار، مما يجعلها فعالة للقوائم الكبيرة حيث تحتاج إلى امتثال شامل.
التحدي
سهلقم بإنشاء برنامج يدير نظام مراقبة الجودة من خلال التحقق من أن جميع المنتجات في الدفعة تستوفي المعايير المطلوبة. يجب على برنامجك القيام بما يلي:
- قراءة مدخل نصي (string) يمثل اسم المصنع
- قراءة عدة مدخلات صحيحة (integers) تمثل درجات جودة المنتج (سينتهي الإدخال عندما تتلقى
-1) - قراءة مدخل صحيح (integer) يمثل الحد الأدنى لمعيار الجودة
- استخدام طريقة
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" إذا فشل أي منتج في تلبية الحد الأدنى من المتطلبات.
ورقة مرجعية
تتحقق طريقة every() مما إذا كانت جميع العناصر في القائمة تستوفي شرطًا معينًا. وهي تعيد القيمة true فقط إذا اجتاز كل عنصر الاختبار، والقيمة false إذا فشل أي عنصر.
List<int> examScores = [75, 82, 68, 91, 77];
// التحقق مما إذا كان جميع الطلاب قد نجحوا (الدرجة > 60)
bool allPassed = examScores.every((score) => score > 60);
print(allPassed); // trueتتوقف طريقة every() عن التحقق بمجرد عثورها على عنصر يفشل في الاختبار، مما يجعلها فعالة للقوائم الكبيرة حيث تحتاج إلى امتثال شامل.
جرّب بنفسك
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');
// طباعة ما إذا كانت جميع المنتجات قد نجحت والحالة النهائية
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
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المجموعات
ما هي المجموعة؟إنشاء مجموعةالإضافة والحذف من المجموعاتالتحقق من وجود عناصر في المجموعةتحويل قائمة إلى مجموعةاتحاد المجموعاتتقاطع المجموعاتالفرق بين المجموعاتمراجعة - قائمة ضيوف فريدة