حلقات (جافا). حلقة مع معلمة (من أجل)


تخيل موقفًا نحتاج فيه إلى عرض نفس الكلمة على الشاشة ، دعنا نقول كلمة "HELLO" ، 10 مرات. ماذا يجب ان نفعل؟
يمكنك أخذ وكتابة الأمر 10 مرات cout & lt؛ & lt؛ & quot؛ مرحبًا & quot ؛؛

ولكن ماذا لو لم تكن بحاجة إلى 10 مرات ، بل 20 ، 30 ، 40 مرة؟ ، وإذا كنت بحاجة إلى 200 مرة؟ في هذه الحالة ، سيستغرق النسخ وقتًا طويلاً. وإذا كان من الضروري أن يختار المستخدم عدد مرات عرض المعلومات على الشاشة؟ & nbsp؛

للتعامل مع هذه المهمة ، سيساعدنا إنشاء خاص يسمى LOOP

الحلقة هي بناء خوارزمي يتم فيه تكرار تسلسل معين من الأوامر عدة مرات.


في لغة برمجة Java ، يوجد نوعان من الحلقات: حلقة بها متغير (for) وحلقة بشرط (while and do ... while)

لنبدأ التعرف على دورات من النوع الأول.

الحلقات المتغيرة أو بعدد معروف من الخطوات (لـ)

غالبًا ما يحدث أننا نعرف عدد التكرارات لبعض الإجراءات ، أو يمكننا حساب عدد التكرارات باستخدام البيانات المعروفة لدينا. تحتوي بعض لغات البرمجة على أمر يبدو في اللغة الروسية مثل REPEAT (عدد المرات) - أي يمكننا تحديد العدد الدقيق للتكرار. & nbsp؛

من المثير للاهتمام أن نرى كيف تعمل هذه الدورة على مستوى الماكينة:
1. يتم تخصيص خلية ذاكرة معينة في الذاكرة ويتم كتابة عدد التكرارات عليها ،
2. عندما ينفذ البرنامج جسم الحلقة مرة واحدة ، فإن محتويات هذه الخلية (العداد) تتناقص بواحد.
3. ينتهي تنفيذ الحلقة عندما تكون هذه الخلية صفراً.

في لغة برمجة جافا ، لا يوجد مثل هذا البناء ، ولكن من أجل البناء. نبسب ؛

الشكل العام لبيان الحلقة for هو كما يلي: <قبل> لـ (/ * expression1 * /؛ / * expression2 * /؛ / * expression3 * /) { / * عبارة واحدة أو مجموعة من العبارات - loop body * /؛ } هذا البناء يتطلب منا
1. تخصيص خلية ذاكرة بشكل صريح ، والتي ستكون عدادًا ، وتعيين قيمتها الأولية
2. تمت كتابة شرط يتم بموجبه تنفيذ جسم الدورة
3. وضّح كيف ستتغير القيمة في هذه الخلية.

في الجزء العملي ، سنحاول عرض كلمة Hello 10 مرات. في المهام التالية ، سنقوم بتحليل هذا البناء بمزيد من التفصيل.

حلقة for هي وسيلة للتنقل بين الإجراءات المتكررة. دعونا نلقي نظرة فاحصة على كيفية عملها.

عادةً ما تؤدي أجزاء حلقة for الخطوات التالية: & nbsp؛
1. تحديد القيمة الأولية. & nbsp؛
2. إجراء اختبار شرط لمتابعة الحلقة. & nbsp؛
3. تنفيذ إجراءات الحلقة. & nbsp؛
4. قم بتحديث القيمة (القيم) المستخدمة في الاختبار. & nbsp؛
ثم يتم تكرار الخطوات من 2 إلى 4 حتى يتم استيفاء الشرط. بمجرد أن يصبح الشرط خاطئًا ، تنتهي الحلقة ويتم تنفيذ العبارة التي تلي تعليمة الحلقة for.

دعنا نعود إلى الشكل العام لبيان الحلقة ونحلل بمزيد من التفصيل جميع الأجزاء <قبل> لـ (/ * expression1 * /؛ / * expression2 * /؛ / * expression3 * /) { / * عبارة واحدة أو مجموعة من العبارات - loop body * /؛ }

التعبير 1

مسؤول عن تحديد القيمة الأولية لمتغير الدورة (عداد) ، وينتهي بفاصلة منقوطة
على سبيل المثال : <قبل> الخيار 1) أنا = 0 ؛ // متغير الدورة i يعطى القيمة الأولية التي تساوي الصفر. مع هذا السجل ، يجب التصريح عن المتغير i قبل الحلقة الخيار 2) int i = 0 ؛ // المتغير i يمكن الإعلان عنه فورًا في رأس الدورة ، لكن // في هذه الحالة ، بعد الحلقة سيتم محوها من الذاكرة الخيار 3) ؛ // لا يوجد تهيئة وإعلان عن متغير الدورة على الإطلاق ، // في هذه الحالة يمكن التصريح عنه قبل الحلقة التعبير 2 <قبل> هذا هو الشرط لاستمرار حلقة for ، يتم فحصها للتأكد من صحتها. i & lt؛ = 10 // ستعمل الحلقة طالما أن i أقل من أو يساوي 10. يمكن أن تكون الحالة أي شيء التعبير 3 نبسب؛ <قبل> يغير قيمة متغير العداد. بدون هذه القيمة ، سيتم اعتبار الحلقة غير محدودة i & lt؛ = 10 // ستعمل الحلقة طالما أن i أقل من أو يساوي 10. يمكن أن تكون الحالة أي شيء لنتدرب على كتابة عنوان الحلقة for

ميزة أخرى في السجل هي أنه إذا كان هناك عامل تشغيل واحد فقط في نص الحلقة ، فيمكن حذف الأقواس.

يمكن أن يكون هناك عبارات متعددة مفصولة بفواصل في كل جزء من أجزاء الرأس.
أمثلة على العناوين:
<قبل> لـ (i = 0 ؛ i & lt ؛ 10 ؛ i ++) {...} // العنوان القياسي <قبل> لـ (i = 0، x = 1 .؛ i & lt؛ 10؛ i + = 2، x * = 0.1) {...} // في هذه الحالة ، نستخدم متغيرين سيتغيران بعد تنفيذ جسم الحلقة - وهما المتغيران i و x // المتغير i يتغير مع الخطوة 2 - i + = 2 - اختصار لـ i = i + 2 // المتغير x يزيد بمقدار 0.1 مرة مع كل خطوة x = x * 0.1 - يُختصر كـ x * = 0.1

لا يمكن تسمية جميع البرامج ذات حلقة for التي كتبناها حتى الآن بأنها عالمية. لأننا حددنا عدد التكرارات لحلقة الجسم بأنفسنا. & nbsp؛
ولكن ماذا لو كان عدد التكرارات يعتمد على قيمة أخرى؟ على سبيل المثال ، يريد المستخدم نفسه تحديد عدد مرات تكرار الدورة.
ماذا تفعل في هذه الحالة؟
كل شيء بسيط للغاية. بدلاً من قيم البداية والنهاية الرقمية ، يمكننا استخدام أي متغيرات يمكن حسابها أو تعيينها بواسطة المستخدم.

على سبيل المثال ، نحتاج إلى عرض مربعات الأرقام من 1 إلى N ، حيث يتم إدخال قيمة المتغير N من لوحة المفاتيح بواسطة المستخدم.
سيبدو البرنامج كالتالي:
نبسب ؛ <قبل> # تضمين & lt؛ iostream & gt؛ استخدام اسم للمحطة؛ رئيسي() { int أنا ، N ؛ // أنا & - متغير الحلقة ، N - العدد الأقصى الذي نحسب له المربع سينما & GT ؛ & GT. ن؛ // إدخال N من لوحة المفاتيح من أجل (i = 1 ؛ i & lt ؛ = N ؛ i ++) // حلقة: بالنسبة للجميع أنا من 1 إلى N - المتغير أنا سوف أخذ قيمًا بالتسلسل من 1 إلى N { كوت & lt؛ & lt؛ & quot؛ Kvadrat chisla & quot؛ & lt؛ & lt؛ i & lt؛ & lt؛ & quot؛ الغراب & quot؛ & lt؛ & lt؛ i * i & lt؛ & lt؛ & quot؛ \ n & quot ؛؛ // إخراج مربع الرقم بتنسيق معين والانتقال إلى سطر جديد } } عند إدخال الحلقة ، يتم تنفيذ العبارة i = 1 ، ثم تتم زيادة المتغير i بمقدار واحد (i ++) مع كل خطوة. يتم تنفيذ الحلقة عندما يكون الشرط i & lt؛ = N صحيحًا. في جسم الحلقة ، تطبع تعليمة الإخراج الوحيدة الرقم نفسه ومربعه على الشاشة وفقًا للتنسيق المحدد.
للتربيع أو الأسس المنخفضة الأخرى ، من الأفضل استخدام الضرب.

قم بتشغيل البرنامج وشاهد نتيجة عمله بقيم مختلفة للمتغير N.