الدرس 4 من 10
الحلقات
- 14 دقيقة
- 5 معايير للتصحيح
- 3 تلميحات
- إلى المطلوب
هدف الدرس
for و while و for-each
الشرح
حلقة for للتكرار بعدد معروف، وفي رأسها ثلاثة أجزاء: البداية والشرط والخطوة: for (int i = 1; i <= n; i++)، وi++ تزيد i واحدًا. والحلقة داخل الحلقة ترسم الأشكال: الخارجية للأسطر، والداخلية لما في كل سطر. وSystem.out.print تطبع دون أن تنزل سطرًا، ثم System.out.println() تُنهي السطر.
وfor المحسّنة (for-each) تمرّ على العناصر بلا عدّاد: for (char c : word.toCharArray()) تعطيك حروف النصّ واحدًا واحدًا. أما while فلما لا تعرف عدد دوراته مسبقًا: تدور ما دام شرطها صحيحًا، فتأكّد أن شيئًا داخلها يقرّبها من النهاية، وإلا دارت إلى الأبد.
والفخّ الأشهر في الحلقات هو الحدّ: i < n تتوقّف قبل n، وi <= n تشملها. خطأ الواحد هذا (off-by-one) لا يوقف البرنامج، بل يعطيك نتيجة تنقص دورة أو تزيدها.
المطلوب
sumTo(n) تُرجع مجموع الأعداد من 1 إلى n بـ for. وcountVowels(s) تعدّ حروف العلّة الإنجليزية a e i o u، صغيرةً وكبيرة، بـ for-each. وnightsUntil(zombies, target): حشد الزومبي يتضاعف كل ليلة، فأرجع عدد الليالي حتى يبلغ target على الأقل، بـ while. وprintStairs(n) تطبع درجًا من n أسطر: # في الأول ثم ##، حتى n علامات في الأخير. ثم استدعِ printStairs(4) من main.
معايير التصحيح
5 معايير- sumTo تجمع من 1 إلى n
- countVowels تعدّ الصغيرة والكبيرة
- nightsUntil: من 1 إلى 1000 في 10 ليالٍ
- printStairs(2) تطبع درجتين
- طُبع درج من أربعة أسطر