Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

الشروط باستخدام '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() عن التحقق بمجرد العثور على عنصر يفشل في الاختبار، مما يجعلها فعالة للقوائم الكبيرة حيث تحتاج إلى امتثال شامل.

challenge icon

التحدي

سهل

قم بإنشاء برنامج يدير نظام مراقبة الجودة من خلال التحقق من أن جميع المنتجات في الدفعة تستوفي المعايير المطلوبة. يجب على برنامجك القيام بما يلي:

  1. قراءة مدخل نصي (string) يمثل اسم المصنع
  2. قراءة عدة مدخلات صحيحة (integers) تمثل درجات جودة المنتج (سينتهي الإدخال عندما تتلقى -1)
  3. قراءة مدخل صحيح (integer) يمثل الحد الأدنى لمعيار الجودة
  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" إذا فشل أي منتج في تلبية الحد الأدنى من المتطلبات.

ورقة مرجعية

تتحقق طريقة 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');
  // طباعة ما إذا كانت جميع المنتجات قد نجحت والحالة النهائية
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow