اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

حلقة ال for تبقى تدور طالما الشرط التالي محقق

بتاريخ 1 دقيقة مضت قال Omar Montage:

i < num

في كل دورة أنت تقوم بالتالي

  1. إضافة 1 إلى قيمة المتحول i
  2. إضافة قيمة i (بعد الزيادة) إلى قيمة المتحول num
  3. التحقق من الشرط
    // بافتراض تمرير التالي
    
    addUp(5)
    
    i	num		حالة الشرط
    0	5		0 < 5  صحيح يكمل
    1	6		1 < 6  صحيح يكمل
    2	8		2 < 8  صحيح يكمل
    3	11		3 < 11 صحيح يكمل
    .
    .
    ... إلى لا نهاية

    قيمة num دائما أكبر من i لذلك لن تقف الحلقة
    وضح ما الغرض من الدالة الذي تريده لكي أقوم بالمساعدة  

  • 0
نشر
بتاريخ 2 دقائق مضت قال Hassan Hedr:

حلقة ال for تبقى تدور طالما الشرط التالي محقق

في كل دورة أنت تقوم بالتالي

  1. إضافة 1 إلى قيمة المتحول i
  2. إضافة قيمة i (بعد الزيادة) إلى قيمة المتحول num
  3. التحقق من الشرط
    
    // بافتراض تمرير التالي
    
    addUp(5)
    
    i	num		حالة الشرط
    0	5		0 < 5  صحيح يكمل
    1	6		1 < 6  صحيح يكمل
    2	8		2 < 8  صحيح يكمل
    3	11		3 < 11 صحيح يكمل
    .
    .
    ... إلى لا نهاية

    قيمة num دائما أكبر من i لذلك لن تقف الحلقة
    وضح ما الغرض من الدالة الذي تريده لكي أقوم بالمساعدة  

أشكرك لقد عرفت أين المشكلة 

 

  • 0
نشر

يحدث هذا لأنك تقوم بتغيير قيمة num في كل دورة من التكرار . فإن كانت قيمة num في الدورة الأولى 5 فهي أقل من القيمة الأولى لـ i و هي الصفر , و بالتالي فإن 5 أقل أيضا من 1 و 6 من 2 و 7 من 3 و هكذا .

أي أن الشرط لن يتوقف . 

و لتدارك هاته المشكلة لنقم بتخزين القيمة الافتراضية لـ num في متغير ثان لا يكون له تأثير في ما داخل الدور سوى تحديده :

function addUp(num) {
   var myNum = num;

   for (i = 0; i < myNum; i++) {
      num += i
   }
   return num
}

سيقوم هذا بإصلاح المشكلة و تحديد الدور من الأعلى في حالة بلوغ i قيمة num الإفتراضية . 

يمكنك الإطلاع على هذا المثال التجريبي

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...