الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

التحويل من for loop إلى while loop

مغلق
بدأه CompuM4n في 9 ديسمبر 2003 · 1 رد · 3,753 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الســــــــــ عليكم ــــــــــــلام..........

لاحظت إن البعض يطلب التحويل من for loop إلى while loop وكأن الموضوع صعب أو معقد وهو على العكس تماماً بسيط جداً.

ولكني أفضل وضع شرح لهذه النقطة حتى لا نعود إليها ونوفر عناء التفكير فيها.

أولاً:علينا أن نميز بنية كل منهما:

while (condition)
{
statements;
}

/////////////////////////////////////////////////////////////////////
for(counter begin; condition; increase value)
{
statemets;
}

ثانياً: علينا معرفة الفرق بينهما :

الفرق أن for تستخدم إذا كان عدد مرات التكرار معلوماً لدينا مثل إدخال عشرة عناصر فهنا لأن العدد محدد مسبقاً نستخدم for.

بينما تستخدم while في حالة كانت عدد مرات التكرار غير معلومة مثل أن يكون التكرار مرتبط بشرط سؤال المستخدم إن كان يريد عملية أخرى.

ونلاحظ أنه يمكن أن تتطابق for و while إذا كانت while تحتوى على عداد كالذي في for.

ونلاحظ أيضاً أنه خلاف وجود عداد counter لـfor لايوجد فرق في الإستخدام بينهما.

هذا باختصار الفرق بينهما.( أترك للخبراء الفرق بينهما في القوة وسرعة التنفيذ).

ثالثاً: طريقة التحويل:

طبعاً كما ذكرت سابقاً أن الفرق بينهما وجود العداد في الـfor ولهذا يمكن وضع عداد في الـwhile لتصبح مطابقة لـfor كما في الكود التالي:

for(counter begin; condition; increase value)
{
statemets;
}
/////////////////////////////////////////////////////////////////
i = counter begin;
while (condition)
{
statements;
i++;
}

وبهذا تكونان متطابقتان.

أرجو أن يكون الشرح مفيد وأنا مستعد لأي سؤال والله يوفق الجميع.

#2

السلام عليكم,,,

مشكورين أخي العزيز CompuM4n على الموضع المهم الذي يزعج المبتدئين ,,

بالنسبة لأمور السرعة في التنفيذ فلا فرق مطلقا بين ال for وال while لأن تعليمات الاسمبلي لهما واحدة تقريبا ,, لأنهما يحتويان على شرط ,, وعلى مقدار زيادة ,,

أما السبب الذي تم عليه وضع نوعي التكرار while for do_while ,, فهو يتعلق بسهولة البرنامج ,, وسهولة الاستخدام ,, وسلاسة تدفق البيانات ليس الا ,,

فلكل نوع من هذه الانواع مكان مناسب أكثر من غيره ,, كما ذكر اخي CompuM4n في الموضوع السابق ,,, ولكن يمكن أن يستعيض عن أي نوع بالاخر كما يشاء ,,

بالتوفيق ,,

banner_60_468.gif

NOTHING IS IMPOSSIBLE

هذا الموضوع مغلق.

مواضيع مشابهة