دورات
عندما يحتاج إجراء ما إلى تكرار عدد كبير من المرات ، يتم استخدام الدورات في البرمجة. على سبيل المثال ، تحتاج إلى عرض النص "Hello, World!" . بدلاً من تكرار نفس أمر إخراج النص مائتي مرة ، غالبًا ما يتم إنشاء حلقة تكرر 200 مرة ما هو مكتوب في جسم الحلقة. كل تكرار يسمى التكرار.
التكرار في البرمجة - بالمعنى الواسع - تنظيم معالجة البيانات حيث تتكرر الإجراءات عدة مرات ، دون أن يؤدي ذلك إلى استدعاءات📞 tأنفسهم (على عكس العودية). بالمعنى الضيق ، إنها خطوة واحدة في عملية دورية متكررة.
حلقة في JavaScript (وبجميع اللغات الأخرى ) هو جزء من التعليمات البرمجية التي تكرر نفسها طالما أن الشرط المعروف صحيح. هناك العديد من الأنواع المختلفة من الحلقات ، لكنهم جميعًا يفعلون نفس الشيء: يكررون فعلًا عدة مرات.
حلقة while ()
ال while
يُنشئ عامل التشغيل حلقة تنفذ التعليمات المحددة بينما يكون الشرط قيد الاختبار صحيحًا. يتم حساب القيمة المنطقية للشرط вычис قبل تنفيذ جسم الحلقة.
بناء الجملة
while (condition) {
instruction // algorithm code - instructions
}
condition
هو تعبير يتم فحص قيمته المنطقية في كل مرة قبل الدخول في الحلقة. إذا كانت القيمة صحيحة -true
, ثم يتم تنفيذ التعليمات. عندما تصبح القيمة خاطئة- false
, نخرج من الحلقة.
التعليمات هي رمز خوارزمية يتم تنفيذه في كل مرة يكون فيها الشرط صحيحًا. لتنفيذ تعليمات متعددة في حلقة ، استخدم عامل تشغيل البلوك "{...}` لتجميعهم. عند استخدام أمر واحد في جسم الحلقة ، يمكن حذف الأقواس المتعرجة.
هنا مثال بسيط للحلقة while (condition) {...}
"العدد" في المثال هو "0". شرط الحلقة الخاصة بنا (مكتوب скоб بين قوسين) هو أن الكتلة التي تحتوي على الكود سوف تكرر نفسها مرارًا وتكرارًا حتى (أي "الوقت" الفعلي) "العدد" أقل من "10".
نظرًا لأن القيمة الأولية لـ "0" أقل من "10" ، فإن الرمز أشواط. في كل مرة يعيد المترجم التحقق من الشرط ، إذا كان الشرط لا يزال صحيحًا ، عندئذٍ الرمز سيتم تشغيله مرة أخرى. في كل مرة نزيد قيمة العداد بـ "1". خلاف ذلك ، ستبقى القيمة عند 0
، لذلك سيظل شرطنا counter <10
صحيحًا دائمًا ، وسيتكرر الكود إلى الأبد!
نتيجة لذلك ، بعد "10" دورات ، ستصبح "10". بعد ذلك ، سينهي المترجم الحلقة لأن الشرط هو false
وانتقل إلى الأسطر الأخيرة من التعليمات البرمجية الخاصة بنا.
حلقة for ()
يُنشئ التعبير for
حلقة من ثلاثة تعبيرات اختيارية بين أقواس ، مفصولة بفواصل منقوطة.
بناء الجملة
for ([initialization]; [condition]; [final expression])
{ expression }
initialization
- التعبير عن المتغيرات أو تعريفها. يمكن أن يعلن هذا التعبير اختياريًا عن متغيرات جديدة باستخدام الكلمة الأساسية Let
. هذه المتغيرات مرئية فقط في حلقة "for" ، أي في نفس النطاق (للأمان).
condition
هو تعبير يتم تنفيذه عند كل تكرار للحلقة. إذا كان التعبير صحيحًا ، يتم تنفيذ الحلقة. الشرط اختياري. إذا لم يكن الأمر كذلك ، فإن الشرط يعتبر دائمًا صحيحًا. إذا كان التعبير خاطئًا ، فسيتم إنهاء تنفيذ "من أجل".
final expression
- تعبير يتم تنفيذه في نهاية تكرار الحلقة. يحدث حتى يتم استيفاء الشرط التالي. عادة ما تستخدم ل increment ++
, decrement -
or update i + = 5
من متغير العداد.
expression
- الكود القابل للتنفيذ للخوارزمية بينما حالة الحلقة هيtrue
. لتنفيذ عدة تعبيرات في حلقة ، استخدم{...}
منع لتجميع تلك التعبيرات. لتجنب تنفيذ أي تعبير في حلقة ، استخدم فارغة for (;;;)
التعبير.
لنحسب مجموع الأعداد من 0 إلى 100 :
تذكر عندما كتبنا 1️⃣ أولwhile()
ماذا حدث للعداد لدينا؟ وجدنا أنه من المهم جدًا أن يتغير باستمرار (increment ++
ساعدنا في هذا). لأنه إذا نسيت ذلك ، فعندئذٍ الرمز سوف تقع فيinfinite loop of loops
.
حسنًا ، مثل هذه المواقف تحدث بانتظام مع while-loops
,وهذا هو السبب for
مع عداد مدمج!
مثال على الحلقة
عندما ترى بناء الجملة لأول مرة من أloop for
,قد تعتقد🤔 أن هذا شيء غريب جدًا. لكن لا يزال عليك دراستها🎓, منذ أن تلتقي
مثل هذا مرات عديدة:
حسنا هل تعلم؟ يحب ان يحصلوا على! بعد كل شيء ، هذا هو نفس الرمز عمليا التي استخدمناها فيwhile
حلقة في بداية الفصل! الأجزاء الثلاثة من الدورة مفصولة بفواصل منقوطة ؛ كانوا جميعًا في حلقة أثناء ذلك ، ولكن في أماكن مختلفة. دعونا نلقي نظرة فاحصة:
1.أولاً ، نعلن عن متغير مضاد -let i = 0
.هذا هو في الوظيفة نفسها وخارج هذه الحلقة i
سيكون غائبا ، وهذا آمن!
- بعد ذلك ، نضع شرطًا سيتحقق منه المترجم قبل كل تكرار للحلقة (لتحديد ما إذا كان الأمر يستحق بدء الكود على الإطلاق). يسمى التكرار تكرارًا واحدًا للحلقة (على سبيل المثال ، إذا كان لدينا 10 دورات بدء تشغيل ، فيمكننا القول أنه كان هناك 10 تكرارات للشفرة).
- الجزء الثالث من الكود الخاص بنا هو
increment ++
(ordecrement --
). يتم تشغيله في نهاية كل تكرار لتغيير متغيرنا في كل مرة.
استنتاج
دائمًا تقريبًا ، عندما تعرف عدد التكرارات المطلوبة ، تفضل العمل معها لفترة من الوقت. لهذا السبب تحظى حلقات "for" بشعبية كبيرة. هناك دورات أخرى ، لكنها ليست شائعة جدًا ويمكنك التعرف عليها إذا أردتhere.
مشاكل؟
اكتب ل Discord محادثة.
أسئلة:
ما اسم كتلة الكود التي تكرر نفسها مرارًا وتكرارًا حتى يصبح الشرط المحدد غير صحيح؟
- دورة
- الشرط
- التهيئة
أي من مشغلي الحلقة أكثر شيوعًا؟
for
while
break
كم عدد الرسائل التي سيتم إخراج الكود التالي إلى وحدة التحكم؟
let k = 0
while (k < 7) {
console.log('one more line!')
}
7
8
infinity
ما هو الحرف المستخدم لفصل أجزاء حلقة for الموجودة بين قوسين؟
&&
;
=!
إذا ظل `` ___ '' دائمًا صحيحًا ، فيمكن أن يتعطل الكود في "___" لانهائي.
- حالة / حلقة
- دورة / شرط
ما هو الوسط "_" من الأجزاء الثلاثة الموضوعة بين قوسين من حلقة for
الذي يسمى؟
- التعبير
- الشرط
- الزيادة
كم عدد الرسائل التي سيتم إخراج الكود التالي إلى وحدة التحكم؟
const maxNumer = 17
let n = 0
while (n <= maxNumer) {
console.log("Let's count!" + n)
n = n + 2
}
8
9
10
ما هو المصطلح لمرور واحد (خطوة) من الدورة؟
- التكرار
- المقاطعة
- التكرار
لفهم مقدار ما تعلمته في هذا الدرس ، قم بإجراء الاختبار في mobile application من مدرستنا في هذا الموضوع.
الروابط
- MDN web doc. The article "The do ... while loop"
- MDN web doc. For Loop Article
- MDN web doc. The while loop
- Iteration article, Javascript Express site
- While and for Loops
- Code for Teens: The Perfect Beginner's Guide to Programming, Volume 1: Javascript - Jeremy Moritz
المساهمون ✨
الشكر يعود إلى هؤلاء الأشخاص الرائعين (emoji key):
Dmitriy K. | Dmitriy Vasilev 💵 | Resoner2005 🐛 🎨 🖋 | Navernoss 🖋 🐛 🎨 |