لغة Dart توفر العديد من الطرق للتكرار عبر العناصر في قوائم مختلفة أو تكرار عمليات معينة بعدد محدد من المرات. واحدة من أساليب التكرار هي الـ “For Loops”. تُستخدم حلقات الـ “For” في Dart لتكرار الأوامر مع عناصر محددة في مجموعة بيانات معينة.
تُعتبر حلقة “for” واحدة من أساسيات البرمجة التي تُستخدم لتكرار تنفيذ مجموعة من الأوامر بشكل متكرر وفقًا لشرط محدد. في لغة برمجة Dart، توفر حلقة “for” وسيلة فعالة ومرنة للتعامل مع هذه الحالات، سواء كانت تكرارًا عبر عناصر في قائمة أو تنفيذ خطوات معينة عدة مرات.
في هذا الدرس، سنقوم باستكشاف حلقة “for” في لغة Dart بشكل شامل، بدءًا من الطريقة التقليدية لاستخدامها لتكرار عبر قائمة من العناصر وصولًا إلى استخدامات متقدمة مثل استخدام “conditional modifier” والتعامل مع مختلف أنواع البيانات مثل List و Set و Map.
في هذا النوع من الحلقات، يتم تحديد متغير تكرار وتحديد نطاق لقيمة هذا المتغير. ثم، يتم تنفيذ كود معين لكل قيمة في النطاق المحدد. على سبيل المثال:
for (int i = 0; i < 5; i++) { print('تكرار رقم $i'); }
في هذا المثال، يتم تكرار الأمر print خمس مرات، حيث يتغير قيمة i من 0 إلى 4.
تُستخدم هذه الحلقة عند الرغبة في تكرار العناصر داخل قائمة أو تكرار عبر عناصر في تسلسل معين. على سبيل المثال:
List<int> numbers = [1, 2, 3, 4, 5]; for (int number in numbers) { print('الرقم $number'); }
في هذا المثال، يتم طباعة كل عنصر في القائمة numbers.
باستخدام حلقات الـ “For”، يمكن للمطورين تكرار العمليات بسهولة عبر العناصر في قوائم أو تطبيق الخوارزميات التي تتطلب التكرار.
طبقًا لطلبك، سنقوم بإنشاء تطبيق بسيط باستخدام حلقة For القياسية في لغة Dart. سنقوم بكتابة تطبيق يقوم بطباعة جدول الضرب لرقم محدد.
إليك الشرح خطوة بخطوة:
نقم بإنشاء ملف جديد بامتداد “.dart” (مثلاً “multiplication_table.dart”).
نقم بإضافة الكود التالي في الملف:
void main() { // تحديد الرقم الذي سنقوم بطباعة جدول ضربه int number = 5; // حلقة For القياسية لطباعة جدول الضرب for (int i = 1; i <= 10; i++) { print('$number * $i = ${number * i}'); } }
نحفظ الملف.
نقم بتشغيل التطبيق عن طريق تشغيله في بيئة تطوير Dart (مثل Visual Studio Code مع تثبيت ملحق Dart و Flutter).
بعد تشغيل التطبيق، سترى جدول ضرب الرقم الذي حددته.
في هذا التطبيق، نقوم بتحديد رقم (في هذه الحالة 5) ونستخدم حلقة For لطباعة جدول الضرب لهذا الرقم من 1 إلى 10. داخل الحلقة، نستخدم التعبير ${number * i} لحساب ناتج الضرب وطباعته مع النص المناسب.
باستخدام حلقة For القياسية، يتم تكرار العملية بشكل متسلسل مع تغيير قيمة المتغير i من 1 إلى 10 في هذه الحالة.
سنقوم بانشاء تطبيقًا بسيطًا يستخدم حلقة “For In” في Dart. سنقوم بإنشاء تطبيق يقوم بطباعة كلمات من قائمة محددة.
نقم بإنشاء ملف جديد بامتداد “.dart” (مثلاً “print_list.dart”).
void main() { // قائمة الكلمات التي سنقوم بطباعتها List<String> words = ["مرحبا", "مرة", "أخرى", "بالعالم", "Dart"]; // حلقة For In لطباعة الكلمات for (String word in words) { print(word); } }
نقم بتشغيل التطبيق عن طريق تشغيله في بيئة تطوير Dart.
بعد تشغيل التطبيق، سيتم طباعة كلمات القائمة التي قمت بتعريفها.
في هذا التطبيق، نقوم بإنشاء قائمة من الكلمات، ثم نستخدم حلقة “For In” لتكرار عبر كل عنصر في القائمة وطباعته. في كل دورة من الحلقة، يتم تعيين قيمة العنصر الحالي في المتغير word ومن ثم يتم طباعته.
حلقة “For In” تعمل بطريقة مشابهة لحلقة “For Each” في لغات برمجة أخرى، حيث تتكرر عبر كل عنصر في القائمة (أو التسلسل) دون الحاجة إلى تحديد نطاق محدد مثلما في حلقة “For” القياسية.
Dart forEach loop
حلقة forEach في لغة Dart تُستخدم لتنفيذ دالة معينة على كل عنصر في قائمة معينة أو تسلسل ما. هذه الحلقة تساعد في تنفيذ نفس العملية على كل عنصر دون الحاجة إلى استخدام حلقة تكرار قياسية.
نقم بتحديد القائمة التي نريد تطبيق الدالة عليها.
List<int> numbers = [1, 2, 3, 4, 5];
نقم بتطبيق الحلقة forEach على القائمة وقم بتمرير دالة كمعامل. تتلقى هذه الدالة كل عنصر من القائمة كمعامل.
numbers.forEach((number) { print('الرقم $number'); });
تُنفذ الدالة الممررة إلى forEach على كل عنصر في القائمة. في هذا المثال، ستُطبع الدالة ‘الرقم’ تتبعه رقم كل عنصر في القائمة.
باستخدام forEach، يمكنك تنفيذ نفس العملية على كل عنصر في القائمة بطريقة بسيطة وفعالة دون الحاجة إلى استخدام حلقات تكرار قياسية. هذا يجعل الشفرة أكثر وضوحًا وأقل تعقيدًا.
طبقًا لطلبك، سأقدم لك تطبيق بسيط يستخدم حلقة forEach في لغة Dart. سنقوم بإنشاء تطبيق يقوم بطباعة جميع الكلمات في قائمة محددة.
نقم بإنشاء ملف جديد بامتداد “.dart” (مثلاً “print_words.dart”).
نقم بإضافة الكود التالي في الملف:
void main() { // تعريف القائمة التي تحتوي على الكلمات List<String> words = ["مرحبا", "بالعالم", "من", "لغة", "Dart"]; // استخدام حلقة forEach لطباعة كل كلمة في القائمة words.forEach((word) { print(word); }); }
احفظ الملف.
kقم بتشغيل التطبيق عن طريق تشغيله في بيئة تطوير Dart.
بعد تشغيل التطبيق، سترى جميع الكلمات في القائمة مطبوعة في النافذة.
في هذا التطبيق، قمنا بتعريف قائمة words التي تحتوي على بعض الكلمات، ثم استخدمنا حلقة forEach لتطبيق دالة على كل عنصر في القائمة. الدالة التي نمررها لـ forEach تقوم بطباعة كل عنصر (كلمة في هذه الحالة) إلى النافذة.
حلقة forEach في Dart تسمح لك بتنفيذ دالة على كل عنصر في قائمة دون الحاجة إلى استخدام حلقات تكرار قياسية، مما يجعل الكود أكثر وضوحًا وسهولة في القراءة.
حلقة “for-in” في لغة Dart تُستخدم لتكرار عناصر في قائمة معينة أو تسلسل معين. ومع ذلك، لا توفر لك هذه الحلقة وسيلة مباشرة للوصول إلى الفهرس (الفهارس) الخاص بكل عنصر. ومع ذلك، يمكنك استخدام متغير فهرس منفصل لتتبع الفهرس أثناء تكرار العناصر.
void main() { List<String> colors = ["أحمر", "أزرق", "أخضر", "أصفر"]; // استخدام حلقة for-in لتكرار العناصر مع تتبع الفهرس for (int index = 0; index < colors.length; index++) { print('اللون في الفهرس $index هو ${colors[index]}'); } }
في هذا المثال، نقوم بتكرار قائمة الألوان باستخدام حلقة “for-in”، لكننا نستخدم متغير فهرس منفصل (باسم index) لتتبع الفهارس. يتم طباعة كل عنصر من القائمة بالإضافة إلى موقعه في الفهرس.
هذا النهج يسمح لك بالوصول إلى الفهرس لكل عنصر في القائمة واستخدامه في العمليات التي تحتاج إلى معرفة موقع العنصر.
سننشء تطبيقًا بسيطًا يستخدم حلقة “for-in” مع فهرس لتتبع موقع كل عنصر في قائمة في لغة Dart.
لنقم بإنشاء تطبيق يقوم بطباعة كل عنصر في قائمة وتتبع موقع كل عنصر.
نقم بإنشاء ملف جديد بامتداد “.dart” (مثلاً “print_list_with_index.dart”).
نقم بإضافة الكود التالي في الملف:
void main() { List<String> fruits = ["تفاح", "موز", "برتقال", "فراولة", "عنب"]; // استخدام حلقة for-in لتكرار العناصر مع تتبع الفهرس for (int index = 0; index < fruits.length; index++) { print('الفاكهة في الفهرس $index هي ${fruits[index]}'); } }
نحفظ الملف.
نقم بتشغيل التطبيق عن طريق تشغيله في بيئة تطوير Dart.
بعد تشغيل التطبيق، سترى كل عنصر في القائمة مطبوعًا مع موقعه في القائمة.
في هذا التطبيق، قمنا بتعريف قائمة fruits التي تحتوي على بعض الفواكه، ثم استخدمنا حلقة “for-in” لتكرار العناصر. داخل الحلقة، نقوم بطباعة كل عنصر مع موقعه في القائمة باستخدام متغير الفهرس index.
باستخدام حلقة “for-in” مع فهرس، يمكننا تتبع موقع كل عنصر في القائمة بسهولة وطباعته بجانب العنصر نفسه.
Dart for loop with a step other than 1:
حلقة “for” في لغة Dart تسمح لك بتكرار تنفيذ الأوامر بشكل متكرر ومتتابع. بشكل افتراضي، يتم زيادة قيمة المتغير التحكمي في الحلقة بمقدار واحد في كل تكرار. ومع ذلك، في بعض الحالات قد تحتاج إلى زيادة المتغير التحكمي بمقدار آخر غير 1، وهذا يمكن تحقيقه باستخدام ما يسمى بخطوة (step).
void main() { // حلقة "for" مع خطوة غير 1 for (int i = 0; i < 10; i += 2) { print(i); } }
في هذا المثال، نستخدم حلقة “for” لطباعة الأعداد الزوجية من 0 إلى 10 بخطوة 2. الجملة i += 2 تعني أن قيمة المتغير التحكمي i ستزيد بمقدار 2 في كل تكرار بدلاً من الزيادة بمقدار 1 كما هو الافتراضي. هذا يعني أن الأعداد التي سيتم طباعتها ستكون: 0، 2، 4، 6، 8.
باستخدام خطوة مختلفة عن 1، يمكنك تحقيق التكرار بنطاقات معينة أو تكرار العمليات بنمط محدد يناسب متطلبات تطبيقك بشكل أفضل.
سننشيء تطبيقًا بسيطًا يستخدم حلقة “for” في لغة Dart مع خطوة أخرى غير 1. سنقوم بإنشاء تطبيق يقوم بطباعة الأعداد الزوجية من 0 إلى 10 بخطوة 2.
نقم بإنشاء ملف جديد بامتداد “.dart” (مثلاً “even_numbers.dart”).
نقم بإضافة الكود التالي في الملف:
void main() { // استخدام حلقة "for" مع خطوة غير 1 لطباعة الأعداد الزوجية for (int i = 0; i <= 10; i += 2) { print(i); } }
ناحفظ الملف.
نقم بتشغيل التطبيق عن طريق تشغيله في بيئة تطوير Dart.
بعد تشغيل التطبيق، سترى الأعداد الزوجية من 0 إلى 10 مطبوعة بخطوة 2.
في هذا التطبيق، نستخدم حلقة “for” لطباعة الأعداد الزوجية من 0 إلى 10. باستخدام الجملة i += 2، يتم زيادة قيمة المتغير التحكمي i بمقدار 2 في كل تكرار. هذا يعني أن الأعداد التي ستتم طباعتها ستكون: 0، 2، 4، 6، 8، 10.
هذا يوضح كيف يمكن استخدام حلقة “for” في لغة Dart مع خطوة أخرى غير 1 لتنفيذ العمليات بنمط محدد يناسب متطلبات التطبيق.
Using where with Dart forEach:
في لغة Dart، يمكنك استخدام الوظيفة where() مع حلقة forEach() لتنفيذ عملية معينة على العناصر التي تستوفي شرط محدد. تتيح لك where() تصفية العناصر في قائمة معينة استنادًا إلى شرط معين، بينما forEach() تسمح لك بتنفيذ عملية معينة على كل عنصر في القائمة.
void main() { List<int> numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // استخدام where() لتصفية الأعداد الزوجية فقط numbers.where((number) => number % 2 == 0).forEach((evenNumber) { print(evenNumber); }); }
في هذا المثال، نقوم بتعريف قائمة numbers تحتوي على مجموعة من الأعداد. ثم، نستخدم where() لتصفية الأعداد الزوجية فقط باستخدام الشرط number % 2 == 0. بمعنى آخر، نحن نبحث عن الأعداد التي يكون باقي قسمتها على 2 يساوي صفر. بعد ذلك، نستخدم forEach() لتنفيذ عملية معينة (في هذه الحالة طباعة العدد) على كل عنصر في القائمة التي تم تصفيتها.
باستخدام where() مع forEach()، يمكنك تنفيذ العمليات بناءً على شروط محددة وتطبيقها على العناصر التي تستوفي تلك الشروط بطريقة مباشرة وفعالة.
في لغة Dart، يمكنك تضمين حلقات “for” داخل بعضها البعض لتنفيذ العمليات بشكل متعدد الأبعاد أو لتكرار العمليات في هيكل تسلسلي. هذا يسمح لك بتنظيم التكرارات بشكل هرمي، حيث يتم تنفيذ حلقة “for” الداخلية بالكامل في كل تكرار من حلقة “for” الخارجية.
لنفترض أن لدينا مصفوفة ثنائية تمثل جدولًا ونريد طباعة جميع القيم في هذا الجدول. يمكننا استخدام حلقتي “for” متداخلتين لتحقيق ذلك بسهولة.
void main() { // تعريف جدول ثنائي List<List<int>> table = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]; // حلقة "for" الخارجية للصفوف for (int i = 0; i < table.length; i++) { // حلقة "for" الداخلية للأعمدة for (int j = 0; j < table[i].length; j++) { print('القيمة في الصف $i والعمود $j هي ${table[i][j]}'); } } }
في هذا المثال، لدينا جدول ثنائي ممثل بمصفوفة من المصفوفات. ثم، نستخدم حلقتي “for” متداخلتين للانتقال عبر كل صف في الجدول وبعد ذلك عبر كل عمود في كل صف. داخل الحلقة الداخلية، نقوم بطباعة القيمة في كل خلية من الجدول.
باستخدام حلقات “for” متداخلة، يمكننا تنظيم وتحكم في التكرارات بشكل هرمي وتطبيق العمليات على هيكل متعدد الأبعاد بشكل مرتب وفعال.
في لغة Dart، تستخدم تعليمات “break” و “continue” للتحكم في سير التنفيذ داخل حلقات الـ “for” و “while” و “do-while”.
تُستخدم تعليمة “break” للخروج من الحلقة تمامًا عندما يتم تنفيذها. بمجرد تنفيذ تعليمة “break”، يتم الخروج من الحلقة الحالية دون استكمال التكرارات المتبقية. تستخدم عادةً عند الوصول إلى شرط معين يجب أن يؤدي إلى انتهاء الحلقة.
for (int i = 1; i <= 10; i++) { if (i == 5) { break; // عندما يتم الوصول إلى الرقم 5، سيتم الخروج من الحلقة } print(i); }
تُستخدم تعليمة “continue” للانتقال إلى التكرار التالي في الحلقة دون استكمال الشيء الحالي الذي قد يتم فيه التنفيذ. يتم تجاوز الشيء الحالي والانتقال مباشرة إلى التكرار التالي في الحلقة.
for (int i = 1; i <= 10; i++) { if (i % 2 == 0) { continue; // عندما يكون الرقم زوجيًا، سيتم تجاوزه والانتقال إلى التكرار التالي } print(i); }
في هذا المثال، عندما يكون الرقم زوجيًا، ستتم طباعته، ولكن سيتم تجاوزه باستخدام “continue” ولن يتم تنفيذ الأوامر التالية، ثم يتم الانتقال إلى التكرار التالي في الحلقة.
تعتبر تعليمات “break” و “continue” أدواتًا هامة للتحكم في سير التنفيذ داخل حلقات الـ “for” و “while” و “do-while”، وتساعد في تحسين تدفق البرنامج وتنظيم الشفرة.
بالطبع، سأقدم لك تطبيقًا يستخدم تعليمات “break” و “continue” في لغة Dart. سنقوم بإنشاء تطبيق يستخدم حلقة “for” لطباعة الأعداد من 1 إلى 10، ولكننا سنستخدم “break” للخروج من الحلقة عندما يتم الوصول إلى العدد 5، وسنستخدم “continue” لتجاوز الأعداد الزوجية.
نقم بإنشاء ملف جديد بامتداد “.dart” (مثلاً “break_continue_example.dart”).
نقم بإضافة الكود التالي في الملف:
void main() { // حلقة "for" لطباعة الأعداد من 1 إلى 10 for (int i = 1; i <= 10; i++) { // استخدام "break" للخروج من الحلقة عند الوصول إلى العدد 5 if (i == 5) { print("تم الوصول إلى الرقم 5، سيتم الخروج من الحلقة"); break; } // استخدام "continue" لتجاوز الأعداد الزوجية if (i % 2 == 0) { print("تجاوز العدد الزوجي: $i"); continue; } print(i); } }
نحفظ الملف.
نقم بتشغيل التطبيق عن طريق تشغيله في بيئة تطوير Dart.
بعد تشغيل التطبيق، سترى الأعداد من 1 إلى 10 مطبوعة، مع رسالة تشير إلى أن الحلقة تم الخروج منها عند الوصول إلى الرقم 5، وسيتم تجاوز الأعداد الزوجية باستخدام “continue”.
في هذا التطبيق، استخدمنا “break” للخروج من الحلقة عند الوصول إلى الرقم 5، واستخدمنا “continue” لتجاوز الأعداد الزوجية. هذه التعليمات تمكننا من التحكم في سير التنفيذ داخل الحلقة وتنظيم الشفرة بشكل أفضل.
في لغة Dart، يمكنك استخدام الدالة List.generate لإنشاء قائمة باستخدام قيم مولدة بناءً على دالة معينة. يمكن استخدام حلقة “for” للتكرار عبر العناصر التي تم إنشاؤها باستخدام List.generate.
إليك كيفية استخدام List.generate مع حلقة “for” في لغة Dart:
void main() { // استخدام List.generate لإنشاء قائمة من الأعداد من 1 إلى 5 List<int> numbers = List.generate(5, (index) => index + 1); // استخدام حلقة "for" للتكرار عبر العناصر التي تم إنشاؤها باستخدام List.generate for (int number in numbers) { print(number); } }
في هذا المثال، نستخدم List.generate لإنشاء قائمة numbers تحتوي على الأعداد من 1 إلى 5. الدالة List.generate تأخذ المقدار الأول كحجم للقائمة والمقدار الثاني كدالة تقوم بإنشاء العناصر. في هذه الحالة، نستخدم معامل index لإنشاء العناصر باستخدام قيم متزايدة من 1 إلى 5.
بعد ذلك، نستخدم حلقة “for” للتكرار عبر العناصر التي تم إنشاؤها باستخدام List.generate ونطبعها.
هذا يوضح كيفية استخدام List.generate مع حلقة “for” لإنشاء قائمة وتكرار عبر عناصرها في لغة Dart.
بالطبع، سأقدم لك تطبيقًا بسيطًا يستخدم List.generate مع حلقة “for” في لغة Dart. سنقوم بإنشاء قائمة تحتوي على الأعداد من 1 إلى 10 باستخدام List.generate، ثم سنقوم بطباعة هذه الأعداد باستخدام حلقة “for”.
نقم بإنشاء ملف جديد بامتداد “.dart” (مثلاً “list_generate_example.dart”).
نقم بإضافة الكود التالي في الملف:
void main() { // استخدام List.generate لإنشاء قائمة من الأعداد من 1 إلى 10 List<int> numbers = List.generate(10, (index) => index + 1); // استخدام حلقة "for" لطباعة الأعداد for (int number in numbers) { print(number); } }
نحفظ الملف.
نقم بتشغيل التطبيق عن طريق تشغيله في بيئة تطوير Dart.
بعد تشغيل التطبيق، سترى الأعداد من 1 إلى 10 مطبوعة.
في هذا التطبيق، استخدمنا List.generate لإنشاء قائمة numbers تحتوي على الأعداد من 1 إلى 10. ثم استخدمنا حلقة “for” لطباعة هذه الأعداد. في كل تكرار، يتم طباعة العدد الحالي من القائمة.
هذا يوضح كيفية استخدام List.generate مع حلقة “for” لإنشاء قائمة وتكرار عبر عناصرها في لغة Dart.
في لغة Dart، يمكنك استخدام حلقة “for” للتكرار عبر العناصر في مجموعة من العناصر المعروفة باسم Iterable. Iterable هو واجهة تحتوي على مجموعة من العناصر التي يمكن التكرار عليها، مثل List و Set و Map وغيرها من التجميعات.
void main() { // تعريف List كمثال على Iterable List<int> numbers = [1, 2, 3, 4, 5]; // استخدام حلقة "for" للتكرار عبر عناصر List for (int number in numbers) { print(number); } }
في هذا المثال، قمنا بتعريف قائمة numbers التي تحتوي على الأعداد من 1 إلى 5. ثم استخدمنا حلقة “for” للتكرار عبر كل عنصر في القائمة. في كل تكرار، يتم طباعة العنصر الحالي.
بالإضافة إلى List، يمكنك استخدام حلقة “for” مع Iterable في أي نوع آخر من التجميعات التي تنفذ واجهة Iterable، مثل Set و Map وغيرها. يتمثل مفتاح الأمر هنا في أن النوع يجب أن يكون Iterable لكي يمكن استخدام حلقة “for” معه.
سننشيء تطبيقًا يستخدم حلقة “for” مع Iterable في لغة Dart. سنقوم بإنشاء قائمة من الأعداد واستخدام حلقة “for” لطباعة كل عنصر في القائمة.
نقم بإنشاء ملف جديد بامتداد “.dart” (مثلاً “iterable_example.dart”).
نقم بإضافة الكود التالي في الملف:
void main() { // تعريف List كمثال على Iterable List<int> numbers = [1, 2, 3, 4, 5]; // استخدام حلقة "for" للتكرار عبر عناصر List print("الأعداد في القائمة:"); for (int number in numbers) { print(number); } // تعريف Set كمثال آخر على Iterable Set<String> names = {"أحمد", "محمد", "سارة"}; // استخدام حلقة "for" للتكرار عبر عناصر Set print("\nالأسماء في المجموعة:"); for (String name in names) { print(name); } }
نحفظ الملف.
نقم بتشغيل التطبيق عن طريق تشغيله في بيئة تطوير Dart.
بعد تشغيل التطبيق، سترى الأعداد والأسماء المطبوعة.
في هذا التطبيق، قمنا بتعريف قائمة numbers ومجموعة names كأمثلة على Iterable (List و Set على التوالي). ثم استخدمنا حلقة “for” للتكرار عبر كل عنصر في القائمة والمجموعة. في كل تكرار، يتم طباعة العنصر الحالي. هذا يوضح كيف يمكن استخدام حلقة “for” مع Iterable في لغة Dart لتكرار عبر عناصر التجميعات المختلفة.
Dart for loop with a conditional modifier
في لغة Dart، يمكنك استخدام “conditional modifier” مع حلقة “for” لتنفيذ تكرارات معينة تحت شرط محدد. يمكن أن يكون الشرط متعلقًا بالقيمة المقروءة أو بالحالة الداخلية للتكرار.
الشكل العام لاستخدام “conditional modifier” مع حلقة “for” في Dart كالتالي:
for (variable; condition; expression) { // statements }
حيث يمكن أن يكون:
variable: المتغير التحكمي للحلقة.
condition: الشرط الذي يتم فحصه قبل كل تكرار.
expression: التعبير الذي يُقَدم عند نهاية كل تكرار.
إذا كان الشرط صحيحًا، يتم تنفيذ التعليمات داخل الحلقة، وإذا كان خاطئًا، يتم الخروج من الحلقة.
مثال يوضح استخدام “conditional modifier” مع حلقة “for” في Dart:
void main() { List<int> numbers = [1, 2, 3, 4, 5]; // استخدام conditional modifier لطباعة الأعداد حتى تصل إلى القيمة 3 فقط for (var number in numbers) { if (number == 4) break; print(number); } }
في هذا المثال، قمنا باستخدام “conditional modifier” مع حلقة “for” لطباعة الأعداد من القائمة numbers حتى تصل إلى القيمة 3 فقط. عندما يتم قراءة القيمة 4، يتم استخدام break للخروج من الحلقة دون استكمال التكرارات المتبقية. هذا يوضح كيفية استخدام “conditional modifier” للتحكم في سير التنفيذ داخل حلقة “for” في لغة Dart.
بالطبع! سأقدم لك تطبيقًا يستخدم حلقة “for” مع “conditional modifier” في لغة Dart. سنقوم بإنشاء قائمة من الأعداد وسنستخدم الحلقة لطباعة الأعداد حتى نصل إلى قيمة معينة، ثم سنتوقف عن التكرار.
نقم بإنشاء ملف جديد بامتداد “.dart” مثلاً “conditional_modifier_example.dart”.
نقم بإضافة الكود التالي إلى الملف:
void main() { List<int> numbers = [1, 2, 3, 4, 5]; // استخدام conditional modifier لطباعة الأعداد حتى تصل إلى القيمة 3 فقط for (var number in numbers) { if (number == 4) break; print(number); } }
ناحفظ الملف.
نقم بتشغيل التطبيق عن طريق تشغيله في بيئة تطوير Dart.
بعد تشغيل التطبيق، سترى الأعداد 1 و 2 و 3 مطبوعة، ثم يتوقف التكرار عندما نصل إلى القيمة 4.
في هذا التطبيق، استخدمنا حلقة “for” للتكرار عبر القائمة numbers. باستخدام “conditional modifier”، قمنا بفحص كل عنصر في القائمة، وعندما وصلنا إلى القيمة 4، استخدمنا break للخروج فورًا من الحلقة. هذا يظهر كيف يمكن استخدام “conditional modifier” للتحكم في سير التنفيذ داخل حلقة “for” في لغة Dart.
دعنا نقم بإنشاء تطبيق بسيط يستخدم حلقة “for” في لغة Dart. سنقوم بكتابة تطبيق يقوم بطباعة جدول الضرب لرقم محدد.
نقم بإنشاء ملف جديد بامتداد “.dart”، مثلاً “multiplication_table.dart”.
نقم بإضافة الكود التالي إلى الملف:
void main() { int number = 5; // اختر الرقم الذي تريد جدول ضربه print("جدول الضرب للرقم $number:"); // استخدام حلقة "for" لطباعة جدول الضرب for (int i = 1; i <= 10; i++) { print("$number * $i = ${number * i}"); } }
نحفظ الملف.
نقم بتشغيل التطبيق عن طريق تشغيله في بيئة تطوير Dart.
بعد تشغيل التطبيق، سترى جدول الضرب للرقم الذي اخترته.
في هذا التطبيق، استخدمنا حلقة “for” لطباعة جدول الضرب لرقم محدد (في هذا المثال الرقم 5). في كل تكرار، يتم طباعة عبارة توضح الضرب (مثل “5 * 1 = 5”) باستخدام القيم التي تم توليدها داخل الحلقة. هذا التطبيق يوضح كيفية استخدام حلقة “for” في لغة Dart لإنشاء وطباعة تسلسلات متكررة.
الإجابة: باستخدام التعبير for (int i = 0; i < myList.length; i++) { }.
الإجابة: يستخدم لتنفيذ تكرارات تحت شرط معين.
الإجابة: للخروج من الحلقة تمامًا بناءً على شرط معين.
الإجابة: يتم تجاوز التكرار الحالي والانتقال إلى التكرار التالي.
الإجابة: يمكن استخدامها لإنشاء قائمة واستخدام حلقة “for” للتكرار عبر عناصرها.
الإجابة: يمكن استخدام myMap.entries مع حلقة “for” للتكرار عبر كل مفتاح وقيمة في الخريطة.
الإجابة: حلقة “for” تسمح بالتحكم في عملية التكرار بشكل أكبر مقارنة بـ “forEach”.
الإجابة: يمكن استخدامها للتكرار عبر كل سلسلة في القائمة وطباعة محتواها.
الإجابة: يجب أن يكون هناك شرط يحدد متى يتم تنفيذ التكرارات.
الإجابة: باستخدام for (var entry in myMap.entries) { } للوصول إلى كل مفتاح وقيمة في الخريطة.
الإجابة: يتم تجاوز التكرار الحالي والانتقال إلى التكرار التالي في الحلقة.
الإجابة: باستخدام for (var element in mySet) { } للوصول إلى كل عنصر في المجموعة.
الإجابة: يمكن استخدام myList.forEach((element) { }) بدلاً من حلقة “for” لتطبيق نفس الإجراء.
الإجابة: يجب أن يكون الشرط مرتبطًا بالمتغير التحكمي للحلقة.