الخوارزمياتالحلقتين while
و do while
- التمرين الثاني
المطلوب
أكتب برنامج يقوم بضرب جميع الأرقام من 1 إلى 10 و يعرض فقط المجموع النهائي بثلاث طرق.
إرشادات
M
هو المتغير الذي سيحتوي على كل الأرقام المضروبة.
i
هو المتغير (العداد) الذي يزيد واحد في كل دورة.
M
يساوي ناتج ضرب كل قيم المتغير i
.
النتيجة المطلوبة
الخوارزمية
شرح طريقة عمل الخوارزمية بدقة
مراجعة لما حدث في الذاكرة
كود الجافا
public class MultipleLoops { public static void main (String[] args) { // هنا قمنا بتعريف المتغيرات في أول البرنامج لأننا سنستخدمهم نفسهم في جميع الحلقات int i = 1; int M = 1; // " for " الطريقة الأولى باستخدام الحلقة System.out.print("1- using for loop:\n"); for ( ; i <=10; i=i+1 ) { M = M * i; } System.out.print("The multiple is: " + M + "\n"); System.out.print("-----------------------------------\n"); // " while " الطريقة الثانية باستخدام الحلقة System.out.print("2- using while loop:\n"); i = 1; M = 1; while ( i <=10 ) { M = M * i; i = i + 1; } System.out.print("The multiple is: " + M + "\n"); System.out.print("-----------------------------------\n"); // " do while " الطريقة الثالثة باستخدام الحلقة System.out.print("3- using do while loop:\n"); i = 1; M = 1; do { M = M * i; i = i + 1; } while ( i <=10 ); System.out.print("The multiple is: " + M + "\n"); System.out.print("-----------------------------------\n"); } }
شرح الكود
- ملاحظة: الشروحات الموضوعة بالعربية فوق كل كود لا تؤثر أبداً عليه لأنها موضوعة كتعليقات كما قلنا سابقاً.
- البرنامج
MultipleLoops
يحتوي على ثلاث حلقات تعمل بنفس الطريقة.
int i = 1; int M = 1;
- في بداية البرنامج قمنا بتعريف المتغيرين
i
وM
لأننا نريد استخدامهم في كل حلقة سننشأها. - إذاً تستطيع إنشاء المتغير الذي ستستخدمه كعداد في بداية البرنامج و تستخدمه من جديد كلما أردت ذلك.
i = 1; M = 1;
- قبل أن نستخدم المتغيرين
i
وM
في أي حلقة كنا نعيد قيمهم إلى كما كانت عليه في البداية.
System.out.print("The multiple is: " + M + "\n");
- بعد كل حلقة قمنا بتعريفها في البرنامج, قمنا باستخدام أمر الطباعة هذا لعرض قيمة المتغير
M
بعد أن تم وضع ناتج ضرب جميع الأرقام من 1 إلى 10 فيه.
for ( ; i <=10; i=i+1 )
- هنا قمنا بتعريف عداد الحلقة
for
قبل تعريف الحلقة و ليس بداخلها. - ملاحظة
يمكن تعريف الحلقةfor
بطرق مختلفة في لغات البرمجة لكن بشكل عام يجب أن يكون هناك إثنين; ;
بين أقواسها و إلا سيؤدي ذلك إلى ظهور خطأ في الكود.
إضافةً إلى ذلك يجب المحافظة على مكان وضع العداد, الشرط, و طريقة زيادة العداد فيها.
فمثلاً, إذا قمت بوضع الشرط في المكان المخصص لتعريف العداد كالتاليfor ( i <=10; ; i=i+1 )
سيظهر لك خطأ.