الحلقة التكرارية “While Loop” في لغة البرمجة دارت (Dart) تستخدم لتنفيذ كتلة من الشفرة مرارًا وتكرارًا طالما تظل الشرط المعطى صحيحًا. تعتمد بنية الحلقة هذه على التحقق من الشرط المعطى قبل تنفيذ الشفرة، وإذا كان الشرط صحيحًا، يتم تنفيذ الشفرة، وبعد ذلك يتم التحقق من الشرط مرة أخرى، وهذا يتكرر حتى يصبح الشرط غير صحيح، وفي هذا الوقت يتوقف تنفيذ الحلقة.
في هذا الدرس، سنقوم بتعريف حلقة التكرار “While Loop” في Dart، وسنتعلم كيفية استخدامها لتنفيذ العمليات بشكل متكرر بناءً على شروط معينة. سنلقي نظرة على البنية الأساسية لحلقة While Loop، وسنقدم العديد من الأمثلة التوضيحية لاستخداماتها الشائعة في البرمجة.
هيا نبدأ بفهم مفهوم حلقة While Loop وكيفية استخدامها بشكل فعال في تطوير التطبيقات باستخدام Dart.
while (condition) { // الشفرة التي تريد تنفيذها ما دام الشرط صحيحاً }
وهنا تكون “condition” هي الشرط الذي يتم التحقق منه. إذا كانت قيمة هذا الشرط صحيحة (true)، سيتم تنفيذ الشفرة داخل الحلقة. وسيستمر التكرار حتى يصبح الشرط غير صحيح (false).
تطبيق بسيط باستخدام حلقة While Loop في لغة Dart يمكن أن يكون مثل الآتي:
نفترض أننا نريد طباعة الأرقام من 1 إلى 5 باستخدام حلقة While Loop.
void main() { // تعريف المتغير لتمثيل الرقم الحالي int number = 1; // تعريف الشرط لحلقة While Loop while (number <= 5) { // طباعة الرقم الحالي print('الرقم: $number'); // زيادة قيمة المتغير للانتقال إلى الرقم التالي number++; } }
هذا الكود يستخدم حلقة While Loop لطباعة الأرقام من 1 إلى 5. يبدأ المتغير number بالقيمة 1. ثم يتم التحقق من شرط number <= 5، إذا كان صحيحاً، فسيتم طباعة الرقم الحالي ومن ثم يتم زيادة قيمة number بمقدار واحد. يتواصل هذا العمل حتى يصل number إلى قيمة 6 حيث يصبح الشرط غير صحيح، وبالتالي يتوقف تنفيذ الحلقة.
سنشرح بنية حلقة التكرار “While Loop” في لغة البرمجة Dart:
while (condition) { // الشفرة التي تريد تنفيذها ما دام الشرط صحيحًا }
تعبر عن الشرط الذي يتم التحقق منه قبل تنفيذ الشفرة داخل الحلقة. إذا كانت قيمة الشرط صحيحة (true)، سيتم تنفيذ الشفرة، وإذا كانت غير صحيحة (false)، سيتم الخروج من الحلقة.
تمثل الكود الذي يتم تنفيذه في كل تكرار للحلقة. يجب توخي الحذر في كتابة الشفرة لضمان عدم حدوث حلقة لا نهائية (تكرار دائم)، مثل الشفرة التي لا تقوم بتغيير قيمة الشرط.
عندما تقوم بتنفيذ حلقة While Loop، يتم التحقق من الشرط أولاً، وإذا كان صحيحًا، يتم تنفيذ الشفرة. بعد كل تنفيذ للشفرة، يتم التحقق مرة أخرى من الشرط، ويتكرر هذا العمل حتى يصبح الشرط غير صحيح، وعندها يتوقف تنفيذ الحلقة.
سنقوم بإنشاء تطبيق بسيط باستخدام حلقة While Loop في Dart. سنقوم بكتابة برنامج يقوم بطباعة قوائم الأرقام من 1 إلى 5 ومن 5 إلى 1 باستخدام حلقتين While Loop مختلفتين.
void main() { // حلقة While Loop لطباعة الأرقام من 1 إلى 5 int i = 1; print('الأرقام من 1 إلى 5:'); while (i <= 5) { print(i); i++; } // حلقة While Loop لطباعة الأرقام من 5 إلى 1 int j = 5; print('الأرقام من 5 إلى 1:'); while (j >= 1) { print(j); j--; } }
في هذا البرنامج، لدينا حلقتين While Loop مختلفتين. الأولى تقوم بطباعة الأرقام من 1 إلى 5، والثانية تقوم بطباعة الأرقام من 5 إلى 1.
المتغير i أو j الذي يستخدم لتتبع القيم التي سيتم طباعتها.
شرط التكرار الذي يتحقق قبل تنفيذ كل دورة من الحلقة. في هذه الحالة، يتم التحقق ما إذا كانت قيمة المتغير i أو j تقل أو تزيد عن الحد النهائي المطلوب.
الشفرة داخل الحلقة التي تنفذ ما يراد تنفيذه خلال كل دورة من الحلقة. في هذا المثال، نقوم بطباعة قيمة المتغير i أو j في كل دورة.
عند تشغيل هذا البرنامج، سترى النتيجة كالتالي:
الأرقام من 1 إلى 5:
1
2
3
4
5
الأرقام من 5 إلى 1:
5
4
3
2
1
Dart while loop:syntax:Initialization,Loop Body,loop control,Exiting the Loop
سنقدم شرحًا مفصلاً لبنية حلقة التكرار “While Loop” في لغة Dart بما في ذلك العناصر الرئيسية مثل التهيئة (Initialization)، جسم الحلقة (Loop Body)، التحكم في التكرار (Loop Control)، والخروج من الحلقة (Exiting the Loop).
هذا الجزء يأتي قبل بداية الحلقة وعادة ما يتم فيها تهيئة المتغيرات التي ستستخدم في شرط الحلقة. على سبيل المثال:
int i = 0;
في هذا المثال، تم تهيئة المتغير i بقيمة 0 كبداية للحلقة.
هذا هو الجزء الذي يتم تنفيذه في كل دورة من الحلقة. يحتوي عادة على الشفرة التي تريد تكرار تنفيذها. على سبيل المثال:
while (i < 5) { print(i); i++; }
في هذا المثال، تتم طباعة قيمة المتغير i ثم يتم زيادته بمقدار 1 في كل دورة من الحلقة.
هذا هو الجزء الذي يتحكم في متى يجب أن تتوقف الحلقة. يعتمد على الشرط الذي يتم فحصه قبل بداية كل دورة. على سبيل المثال:
while (i < 5)
هنا، يتم التحقق من قيمة المتغير i، وإذا كانت أقل من 5، ستستمر الحلقة في التكرار. إذا كانت قيمة i تصبح أكبر من أو تساوي 5، فإن الحلقة ستتوقف.
يمكن أن تنتهي الحلقة إما عندما يتم تحقيق الشرط المحدد في التحكم في التكرار، أو عندما يتم الخروج من الحلقة بشكل قسري باستخدام أوامر مثل break أو return.
مثال توضيحي:
فلنرى مثالًا كاملاً يجمع بين هذه العناصر:
void main() { int i = 0; // التهيئة while (i < 5) { // التحكم في التكرار print(i); // جسم الحلقة i++; // جسم الحلقة } print("تم الخروج من الحلقة"); // بعد الخروج من الحلقة }
هذا المثال يطبع الأرقام من 0 إلى 4، ثم يطبع “تم الخروج من الحلقة”.
سننشيء الآن تطبيقًا بسيطًا يستخدم حلقة التكرار “While Loop” في Dart. في هذا التطبيق، سنقوم بطباعة جدول ضرب بسيط لرقم محدد.
void main() { // التهيئة int number = 5; int i = 1; print('جدول ضرب $number:'); // جسم الحلقة while (i <= 10) { print('$number * $i = ${number * i}'); i++; // التحكم في التكرار } print('انتهى البرنامج'); // بعد الخروج من الحلقة }
الشرح:
في هذا التطبيق، نقوم بتهيئة المتغيرات اللازمة، حيث يكون number هو الرقم الذي نريد طباعة جدول الضرب له، و i هو المتغير الذي سيستخدم لتتبع الأعداد من 1 إلى 10.
نقوم بطباعة رسالة توضيحية قبل طباعة جدول الضرب.
بداخل الحلقة، نستخدم جسم الحلقة لطباعة جدول الضرب. نقوم بطباعة ناتج ضرب number في i، وبعد ذلك نزيد قيمة i بواحد باستخدام i++، هذا يعد جزءًا من التحكم في التكرار.
عندما يصبح i أكبر من 10، فإن الشرط i <= 10 لم يعد صحيحًا، فيتم الخروج من الحلقة.
بعد الخروج من الحلقة، سيتم طباعة رسالة تعلمنا بأن البرنامج قد انتهى.
عند تشغيل هذا البرنامج، ستشاهد الناتج كالتالي:
جدول ضرب 5:
5 * 1 = 5
5 * 2 = 10
5 * 3 = 15
5 * 4 = 20
5 * 5 = 25
5 * 6 = 30
5 * 7 = 35
5 * 8 = 40
5 * 9 = 45
5 * 10 = 50
انتهى البرنامج
هذا هو تطبيق شامل يستخدم حلقة While Loop في Dart لطباعة جدول ضرب بسيط.
بالطبع، يمكن استخدام حلقة While Loop مع مجموعات (Collections) في Dart للقيام بمجموعة متنوعة من الأنشطة مثل إضافة العناصر إلى القائمة أو القيام بمعالجة العناصر الموجودة في القائمة بشكل ديناميكي. سأقدم مثالًا يوضح كيفية استخدام حلقة While Loop مع List في Dart:
void main() { List<int> numbers = [1, 2, 3, 4, 5]; List<int> squaredNumbers = []; int i = 0; while (i < numbers.length) { squaredNumbers.add(numbers[i] * numbers[i]); i++; } print('Original numbers: $numbers'); print('Squared numbers: $squaredNumbers'); }
في هذا المثال، لدينا قائمة numbers تحتوي على أرقام صحيحة. نقوم بتهيئة قائمة فارغة squaredNumbers التي سنستخدمها لتخزين نتائج التربيع. ثم نقوم باستخدام حلقة While Loop لتكرار عملية التربيع لكل عنصر في القائمة numbers وإضافة الناتج إلى قائمة squaredNumbers. الحلقة تنتهي عندما يصبح i أكبر من طول القائمة numbers.
عند تشغيل هذا الكود، سيتم طباعة الأرقام الأصلية والأرقام المربعة:
less
Original numbers: [1, 2, 3, 4, 5]
Squared numbers: [1, 4, 9, 16, 25]
هذا المثال يظهر كيف يمكن استخدام حلقة While Loop لتحقيق مهام معالجة البيانات بشكل ديناميكي مع مجموعة في Dart.
حلقة التكرار “While Loop” في لغة Dart تستخدم لتنفيذ مجموعة متنوعة من المهام التكرارية حيث يتم تحقيق شرط معين. سأقدم بعض الأمثلة الشاملة التي توضح استخدامات حلقة While Loop في Dart:
void printNumbersUpToN(int n) { int i = 1; while (i <= n) { print(i); i++; } } void main() { printNumbersUpToN(5); // سيطبع الأرقام من 1 إلى 5 }
int sumNumbersUpToN(int n) { int sum = 0; int i = 1; while (i <= n) { sum += i; i++; } return sum; } void main() { print(sumNumbersUpToN(5)); // سيطبع مجموع الأرقام من 1 إلى 5 وهو 15 }
void main() { List<int> numbers = [1, 2, 3, 4, 5]; int target = 3; bool found = false; int i = 0; while (i < numbers.length) { if (numbers[i] == target) { found = true; break; } i++; } if (found) { print('تم العثور على العنصر $target'); } else { print('لم يتم العثور على العنصر $target'); } }
void main() { int x = 0; while (x < 5) { print('القيمة الحالية لـ x هي $x'); x++; } print('انتهت الحلقة'); } 5. تنفيذ حلقة حتى تحقيق شرط معين: dart void main() { int x = 10; while (x > 0) { print('القيمة الحالية لـ x هي $x'); x -= 2; } print('انتهت الحلقة'); }
هذه الأمثلة توضح استخدامات مختلفة لحلقة While Loop في Dart، بدءًا من طباعة الأرقام والمجموعات، إلى البحث في قوائم وتحقيق شروط معينة.
سنقوم بإنشاء تطبيق بسيط يستخدم حلقة التكرار “While Loop” في Dart. سنقوم بإنشاء برنامج يطبع الأعداد الزوجية من 1 إلى عدد معين.
هذا التطبيق يشمل التهيئة للعدد الأولي واستخدام حلقة While Loop لطباعة الأعداد الزوجية حتى عدد معين.
void main() { // التهيئة int number = 1; int limit = 10; // العدد الأقصى للطباعة // الطباعة print('الأعداد الزوجية من 1 إلى $limit:'); // حلقة التكرار while (number <= limit) { if (number % 2 == 0) { print(number); } number++; // تحديث القيمة للانتقال إلى الرقم التالي } }
الشرح:
في هذا التطبيق، نبدأ بتهيئة المتغيرات الضرورية، حيث يكون number هو العدد الأول الذي سنبدأ منه و limit هو العدد الأقصى الذي نريد طباعة الأعداد الزوجية حتى وصوله.
بعد ذلك، نقوم بطباعة رسالة توضيحية قبل بدء الطباعة.
ثم، نستخدم حلقة While Loop لتكرار طباعة الأعداد الزوجية. نستخدم الشرط number <= limit للتحقق من أننا لم نتجاوز العدد الأقصى المحدد.
داخل الحلقة، نستخدم شرط number % 2 == 0 للتحقق مما إذا كان العدد الحالي زوجيًا، ثم نقوم بطباعته.
في كل دورة من الحلقة، نقوم بتحديث قيمة number بمقدار واحد باستخدام number++.
عندما يصبح number أكبر من limit، يتم الخروج من الحلقة، وبعد ذلك يستمر التنفيذ لطباعة رسالة تعلمنا بأن البرنامج قد انتهى.
عند تشغيل هذا البرنامج، سترى النتيجة التالية:
الأعداد الزوجية من 1 إلى 10:
2
4
6
8
10
هذا هو تطبيق شامل يستخدم حلقة While Loop في Dart لطباعة الأعداد الزوجية من 1 إلى عدد معين.
هاكم اختبارًا بسيطًا حول درس حلقة التكرار “While Loop” في لغة Dart. يمكنك الإجابة على الأسئلة ومن ثم مراجعة الشرح للإجابات الصحيحة.
أ) while (condition) { }
ب) for (initialization; condition; update) { }
ج) do { } while (condition);
د) while { } (condition);
أ) لإنشاء مصفوفات جديدة.
ب) لتكرار تنفيذ مجموعة من الأوامر حتى تصبح قيمة معينة غير صحيحة.
ج) لتطبيق الشروط اللوجيستية.
د) للتحكم في عمليات الإدخال والإخراج.
أ) الشرط الموجود بعد الكلمة الأساسية while.
ب) الشرط الموجود بعد الكلمة الأساسية do.
ج) الشرط الموجود داخل الأقواس { }.
د) الشرط الموجود بعد الكلمة الأساسية for.
الإجابات:
أ) while (condition) { }
ب) لتكرار تنفيذ مجموعة من الأوامر حتى تصبح قيمة معينة غير صحيحة.
أ) الشرط الموجود بعد الكلمة الأساسية while.
الشرح:
السؤال الأول يستفسر عن بنية حلقة While Loop في Dart، الإجابة الصحيحة هي الخيار أ.
السؤال الثاني يطلب تعريف الغرض من حلقة While Loop، وهو لتكرار تنفيذ مجموعة من الأوامر حتى تصبح قيمة معينة غير صحيحة، الإجابة الصحيحة هي الخيار ب.
السؤال الثالث يسأل عن الشرط الذي يحدد متى يتم الخروج من حلقة While Loop، الإجابة الصحيحة هي الخيار أ.
هذا الاختبار يقدم استعراضًا سريعًا لمفهوم حلقة While Loop في Dart ويختبر معرفتك بها.
أ) كتابة الشرط داخل الأقواس {}.
ب) تهيئة المتغيرات اللازمة للشرط.
ج) كتابة الشروط المطلوبة للحلقة.
د) تحديد الخطوة التالية بعد الحلقة.
أ) i = i + 1;
ب) i += 1;
ج) i++;
د) جميع ما ورد.
أ) عندما تحتاج إلى تنفيذ عملية معينة مرات محددة.
ب) عندما تحتاج إلى تنفيذ عملية معينة حتى يتحقق شرط معين.
ج) عندما تحتاج إلى تنفيذ عملية بشكل لا نهائي.
د) حلقة While Loop لا تستخدم لأي غرض معين.
الإجابات:
ب) تهيئة المتغيرات اللازمة للشرط.
د) جميع ما ورد.
ب) عندما تحتاج إلى تنفيذ عملية معينة حتى يتحقق شرط معين.
الشرح:
السؤال الرابع يسأل عن الخطوة الأولى في استخدام حلقة While Loop، وهي تهيئة المتغيرات اللازمة للشرط، الإجابة الصحيحة هي الخيار ب.
السؤال الخامس يطلب التعرف على الطريقة الصحيحة لتحديث المتغيرات داخل حلقة While Loop، وهي باستخدام جميع الخيارات المذكورة، الإجابة الصحيحة هي الخيار د.
السؤال السادس يستفسر عن متى يمكن استخدام حلقة While Loop بدلاً من حلقة For Loop، والإجابة الصحيحة هي عندما تحتاج إلى تنفيذ عملية معينة حتى يتحقق شرط معين، الخيار ب.