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 عبر الإنترنت