الساام عليكم
سؤال للمبرمجين
فهمت كيفية استعمال while و for لكني لم استطع فهم كيفية ادراج while داخل while
كيف تعمل اتمنى ان يكون الشرح سهل
شكرا
يمكن أن نضع while داخل while عندما تريد تكرار حدث معين داخل حدث آخر. هذا يسمى بالتكرار المتداخل.
هذا مثال بسيط لشرح ذلك:
نفترض أن لدينا 10 دراجات ونريد ترتيبها في صفوف. يمكننا استخدام while في حل هذه المشكلة. لكن في حالة كان لدينا عدة صفوف، يمكننا استخدام while داخل while لترتيب الدراجات في كل صف.
هذا هو مثال بسيط لشرح ذلك:
1. نحتاج إلى تكرار العملية لترتيب الدراجات في الصفوف.
2. سنستخدم while لترتيب الصف الأول.
3. بعد ذلك، سنستخدم while آخر لترتيب الدراجات في الصف الثاني.
4. وهكذا، حتى ننهي ترتيب جميع الدراجات في كل الصفوف.
هذا مثال موسع عن الشرح السابق:
نفترض أن لدينا 20 دراجة ونريد ترتيبها في صفوف يحتوي كل صف على 5 دراجات فقط. يمكننا استخدام while داخل while لترتيب الدراجات في كل صف.
هكذا يمكن تنفيذ ذلك باستخدام while داخل while:
total_bikes = 20 bikes_per_row = 5 rows = total_bikes // bikes_per_row i = 0 while i < rows: print("Row #", i+1) j = 0 while j < bikes_per_row: print("Bike #", i*bikes_per_row+j+1) j += 1 i += 1
Row # 1 Bike # 1 Bike # 2 Bike # 3 Bike # 4 Bike # 5 Row # 2 Bike # 6 Bike # 7 Bike # 8 Bike # 9 Bike # 10 Row # 3 Bike # 11 Bike # 12 Bike # 13 Bike # 14 Bike # 15 Row # 4 Bike # 16 Bike # 17 Bike # 18 Bike # 19 Bike # 20
الكود يقوم بترتيب 20 دراجة في صفوف يحتوي كل صف على 5 دراجات فقط. الخطوات التي يتبعها الكود هي:
1. تعيين عدد الدراجات الإجمالي وعدد الدراجات في كل صف.
total_bikes = 20 bikes_per_row = 5
2. حساب عدد الصفوف اللازمة لترتيب جميع الدراجات (يساوي 4 في هذه الحالة).
rows = total_bikes // bikes_per_row
3. إنشاء متغير يمثل رقم الصف وتكرار العملية لعدد الصفوف.
i = 0 while i < rows:
4. طباعة رقم الصف.
print("Row #", i+1)
5. إنشاء متغير يمثل رقم الدراجة وتكرار العملية لعدد الدراجات في كل صف.
j = 0 while j < bikes_per_row:
6. طباعة رقم الدراجة.
print("Bike #", i*bikes_per_row+j+1)
7. زيادة قيمة المتغير j بمقدار واحد لاستكمال الدراجات في الصف الحالي.
j += 1
8. زيادة قيمة المتغير i بمقدار واحد للانتقال إلى الصف التالي.
i += 1
وهكذا، يتم ترتيب جميع الدراجات في جميع الصفوف باستخدام while داخل while. أتمنى أن يكون هذا التوضيح مفيدا!
تستخدم الحلقات (loops) في لغة البرمجة بايثون لتكرار تنفيذ مجموعة من الأوامر عدة مرات، وتستطيع استخدام كل من حلقة "while" وحلقة "for" لتحقيق ذلك، ولنبدأ بشرح حلقة "while"، ثم سأوضح لك كيف يمكن دمج حلقات "while" داخل بعضها.
حلقة "while":
نعتمد على حلقة "while" لتكرار تنفيذ مجموعة من الأوامر طالما تتحقق شرط معين. ويحدد الشرط في البداية، وإذا كان الشرط صحيحًا، تنفذ الأوامر في الحلقة، ثم التحقق من الشرط مرة أخرى، فإذا كان الشرط مازال صحيحًا، تنفذ الأوامر مرة أخرى، وهذا العملية تستمر حتى يصبح الشرط غير صحيح، عندئذٍا يتم الخروج من الحلقة ومتابعة تنفيذ الأوامر بعد الحلقة.
إليك مثالًا بسيطًا:
x = 0 while x < 5: print(x) x += 1
قمت بتعيين قيمة الـ x إلى 0 في البداية. ثم يتم تحديد الشرط x < 5 في الحلقة، وطالما تتحقق هذه الشروط، تطبع قيمة x وزيادتها بواحد (x += 1)، وتتواصل هذه العملية حتى يصبح الشرط x < 5 غير صحيح، وهنا يتم الخروج من الحلقة واستئناف تنفيذ الأوامر التالية بعد الحلقة.
والآن، لنتحدث عن كيفية إدراج حلقة "while" داخل حلقة "while"، وهو ما يعرف بالتكرار المتداخل (nested loops)، وباستطاعتك استخدام تلك التقنية عندما تحتاج إلى تكرار مجموعة من الأوامر في حلقة داخل حلقة أخرى.
مثال:
x = 0 while x < 3: y = 0 while y < 2: print(x, y) y += 1 x += 1
في الكود هناك حلقتان متداخلتان، الحلقة الخارجية تتكرر طالما يتحقق الشرط x < 3، والحلقة الداخلية تتكرر طالما يتحقق الشرط y < 2.
وتطبع القيمة x و y في كل تكرار للحلقتين، وزيادة قيمة y بواحد في كل تكرار للحلقة الداخلية، وزيادة قيمة x بواحد في كل تكرار للحلقة الخارجية.
في بايثون، يمكنك استخدام الحلقات (loops) لتنفيذ مجموعة من التعليمات بشكل متكرر حتى تتحقق شرط معين. والحلقات تساعدك في تكرار التنفيذ حسب الحاجة.
لإدراج حلقة while داخل حلقة while أخرى، يُمكنك استخدام هيكل التحكم المناسب. عادةً ما يتم استخدام الحلقة الداخلية لإجراء عمل معين داخل الحلقة الخارجية.
هنا مثال بسيط يوضح كيفية استخدام حلقة while داخل حلقة while في بايثون:
# مثال حلقة while داخل حلقة while
i = 1
while i <= 3:
print("الحلقة الخارجية:", i)
j = 1
while j <= 2:
print("الحلقة الداخلية:", j)
j += 1
i += 1
التعليقات