الســــــــــ عليكم ــــــــــــلام..........
لاحظت إن البعض يطلب التحويل من 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++;
}وبهذا تكونان متطابقتان.
أرجو أن يكون الشرح مفيد وأنا مستعد لأي سؤال والله يوفق الجميع.
