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

[ تمت الإجابة ]كيف نحدد شرط انتهاء حلقة for ؟

بدأه bahbah في 23 نوفمبر 2013 · 4 رد · 832 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لدي تساؤل حقيقةً ..

 

لماذا في الحلقات التكرارية يجب أن يكون الشرط إما <> ولا نستطيع وضع = لوحدها ؟؟ وإلا سينتج عنها ...

حلقات لا متناهية ..

 

هل هذا ما يجعلنا نضع قيمة المتغير هي صفر لأنه أفضل حل ..

 

فمثلاً هنا ..

for(x=1;x=15;x++)

أريد تكرار أمر معين 15 مرة بالضبط ولكن ينتج عن ذلك تكرار لا محدود .. لذلك إستخدمت هذا الكود ..

for(x=0;x<15;x++)

وهنا أقوم بتكرار الأمر 15 مرة بالضبط بإستخدام الصفر ..

 

تحياتي  ^_^

رجعت ومازال الفريق خاملاَ  :( 


 


abPuw.1.gif

#2
اقتباس

لماذا في الحلقات التكرارية يجب أن يكون الشرط إما <> ولا نستطيع وضع = لوحدها ؟؟ وإلا سينتج عنها ...

حلقات لا متناهية ..

 

لا يوجد قيد أو تحديد للشرط الموجود في الـ loops, كل ما في الأمر هو التزام الشرط بالمنطق السليم :)

بالنسبة لوضع = فهو غير منطقي لأنها تعني إسناد القيمة 15 إلى المتغير x و بالتالي العبارة x=15 ستكون دائما true إذا تمت عملية الإسناد لهذا السبب ستدخل في حلقة غير منتهية.

يُمكن أن تضع x!=15 حيث ستتوقف الحلقة عندما يصل العداد إلى 15 لكن لا يُمكنك استخدام == لأنه سيتم الخروج من الحلقة عند أول عملية تحقق من الشرط لأن 0 يختلف عن 15.

السبب في كثرة استخدام < و > يعود إلى أن منطق الحلقات يعتمد على عداد يحمل قيمة معينة و شرط للتحقق, عادة ما يكون الشرط عبارة عن مقارنة العداد بقيمة عظمى أو ضغرى و عندما يصل إليها تتوقف الحلقة.

تم تعديل هذه المشاركة بواسطة Snack3r في 23 نوفمبر 2013 في 19:05 — السبب: تصحيح الخطأ

3
#3

صحيح ما قلته أن = يعني إسناد قيمة .. فجربت == والتي تعني التطابق ..

 

لم تفلح  :(  ولكن != قد نجحت  :D  ..

 

ما السبب ؟؟

 

تحياتي  ^_^

رجعت ومازال الفريق خاملاَ  :( 


 


abPuw.1.gif

#4

عفواً, تم تصحيح الخطأ :

اقتباس
يُمكن أن تضع x!=15 حيث ستتوقف الحلقة عندما يصل العداد إلى 15 لكن لا يُمكنك استخدام == لأنه سيتم الخروج من الحلقة عند أول عملية تحقق من الشرط لأن 0 يختلف عن 15.

 

1
#5

إجابة متواضعة مني اتمنى توصل المعلومة


 


عندما تضع == فهذا لا ينفذ ما بداخل اللوب الا اذا كان مرة واحدة فقط مثلا


for (i=3;i==3;i++) هنا تنفذ مرة واحدة


 


 لأنه عندما نضع اللوب نعني بها طالما المتغير يساوي 3 نفذ ما بداخل اللوب 


في التكرار الثاني يصبح المتغير 4 إذا لا يساوي اللوب وبهذه الحالة تكون لم تستفد من اللوب إلا مرة واحدة


1

 إن المعلم والطبيب كلاهمــــا ... لا ينصحـان إذا همـا لم يكرمـا 


فاصبر لدائـك إن أهنت طبيبه ... واصبــر لجهلك إن جفوت معلما

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