continue في JavaScript

من موسوعة حسوب

التعبير البرمجي continue يؤدي إلى تجاوز تنفيذ التعابير البرمجية في التكرار الحالي (iteration) في حلقة التكرار الحالية أو حلقة التكرار المسماة (عبر لافتة)، وسيستمر تنفيذ الحلقة بدءًا من التكرار التالي.

البنية العامة

continue [label];

label

مُعرِّفٌ اختياريٌ مرتبطٌ بلافتة التعبير البرمجي.

الوصف

على النقيض من التعبير break، لن يؤدي التعبير continue إلى إنهاء تنفيذ الحلقة كليًّا، وإنما:

  • في حلقات while سيؤدي إلى الانتقال إلى الشرط.
  • في حلقات for سيؤدي إلى الانتقال إلى تعبير تحديث معاملات حلقة التكرار.

يمكن أن يضمّ التعبير continue لافتةً اختياريةً التي تسمح للبرنامج بالانتقال إلى التكرار الآتي في حلقة تكرار مسماة بدلًا من حلقة التكرار الحالية؛ ويجب أن يكون التعبير continue موجودًا ضمن ذاك التعبير المسمى.

أمثلة

استخدام continue مع حلقة while

المثال الآتي فيه التعبير continue ضمن حلقة التكرار while والذي سيُنفَّذ عندما تكون قيمة المتغير i مساويةً للعدد 3، وبالتالي سيأخذ المتغير n القيم 1 و 3 و 7 و 12:

var i = 0;
var n = 0;

while (i < 5) {
  i++;

  if (i === 3) {
    continue;
  }

  n += i;
}

استخدام continue مع اللافتات

لدينا في المثال الآتي تعبيرٌ له اللافتة checkiandj الذي يحتوي على تعبيرٍ له اللافتة checkj؛ وعندما يُنفِّذ البرنامج التعبير continue فسيعود تنفيذه إلى بداية التعبير checkj، وفي كل مرة يُنفَّذ فيها التعبير continue فستنتقل حلقة التكرار checkj إلى التكرار التالي إلى أن يصبح الشرط غير محقق (false)، وحينئذٍ سيُكمَل تنفيذ التعبير checkiandj.

إذا كان للتعبير continue اللافتة checkiandj، فسيُكمَل التنفيذ في أعلى الحلقة checkiandj.

راجع صفحة label لمزيدٍ من المعلومات حول اللافتات.

var i = 0;
var j = 8;

checkiandj: while (i < 4) {
  console.log('i: ' + i);
  i += 1;

  checkj: while (j > 4) {
    console.log('j: ' + j);
    j -= 1;

    if ((j % 2) == 0)
      continue checkj;
    console.log(j + ' is odd.');
  }
  console.log('i = ' + i);
  console.log('j = ' + j);
}

الناتج:

i: 0

// start checkj
j: 8
7 is odd.
j: 7
j: 6
5 is odd.
j: 5
// end checkj

i = 1 
j = 4 

i: 1
i = 2 
j = 4

i: 2
i = 3
j = 4

i: 3
i = 4
j = 4

دعم المتصفحات

الميزة Chrome Firefox Internet Explorer Opera Safari
الدعم الأساسي نعم نعم نعم نعم نعم

مصادر ومواصفات