تعليمات break و continue ECMAScript
- الصفحة السابقة استخدام جملة break
- الصفحة التالية استخدام جملة with
تقدم جمل break وcontinue تحكمًا أشدًا في تنفيذ الكود في الدورات.
الفرق بين جمل break وcontinue
تخرج جملة break من الدورة فورًا،وتبدأ في تنفيذ أي كود آخر.
جملة continue تخرج فقط من الدورة الحالية،وتبدأ في دورة أخرى بناءً على معادلة التحكم.
مثال:
var iNum = 0; for (var i=1; i<10; i++) { if (i % 5 == 0) { break; } iNum++; } alert(iNum); //يظهر "4"
في هذا الكود،تتكرر دورة for من 1 إلى 10 على المتغير i. في جسم الدورة،ستقوم جملة if بفحص قيمة i ما إذا كانت قابلة للانقسام على 5 باستخدام عمليات الطرح. إذا كانت قابلة للانقسام،سيتم تنفيذ جملة break. سيظهر alert "4"،وهذا يعني عدد مرات تنفيذ الدورة قبل الخروج منها.
إذا تم استبدال جملة continue بهذه المثال بدلاً من جملة break،النتيجة ستكون مختلفة:
var iNum = 0; for (var i=1; i<10; i++) { if (i % 5 == 0) { continue; } iNum++; } alert(iNum); //يظهر "8"
هنا،alert سيعرض "8"،وهذا يعني عدد مرات تنفيذ الدورة. قد يكون مجموع الدورات التي يمكن تنفيذها 9،لكن عندما يكون قيمة i 5،سيتم تنفيذ جملة continue،وسيؤدي إلى قفز الدورة إلى بدايتها.
يمكن استخدام جملة الموسم معًا
يمكن استخدام جملة break و جملة continue مع جملة الموسم لتوجيه العودة إلى موقع معين في الكود.
عادةً، عندما يكون هناك دورات داخل دورات أخرى، يتم القيام بذلك، مثلًا:
var iNum = 0; outermost: for (var i=0; i<10; i++) { for (var j=0; j<10; j++) { if (i == 5 && j == 5) { break outermost; } iNum++; } } alert(iNum); //يُظهر "55"
في المثال السابق، يمثل العلامة outermost جملة for الأولى. في النوع العادي، يتم تنفيذ كود الفقرة 10 مرات لكل جملة for، مما يعني أن iNum++ سيتم تنفيذه 100 مرة، ويجب أن تكون قيمة iNum تساوي 100 عند الانتهاء من التنفيذ. هنا، يحمل جملة break مفتاحًا، وهو العلامة التي يجب الانتقال إليها بعد إيقاف الدورة. لذا، يمكن أن يخرج جملة break ليس فقط من الدورة الداخلية (الاستخدام من خلال المتغير j)، ولكن أيضًا من الدورة الخارجية (الاستخدام من خلال المتغير i). لذا، تكون القيمة النهائية لـ iNum 55، لأن الدورة ستنتهي عندما تكون قيم i و j تساوي 5.
يمكن استخدام جملة continue بنفس الطريقة:
var iNum = 0; outermost: for (var i=0; i<10; i++) { for (var j=0; j<10; j++) { if (i == 5 && j == 5) { continue outermost; } iNum++; } } alert(iNum); //يُظهر "95"
في المثال السابق، ستجبر جملة continue على استمرار الدورة، وليس فقط الدورة الداخلية، ولكن الدورة الخارجية أيضًا. عندما يكون j يساوي 5، يعني أن الدورة الداخلية ستقلل من 5 تكرارات، مما يجعل قيمة iNum تساوي 95.
إشارة:من الواضح، أن جملة الموسم المستخدمة مع break و continue قوية للغاية، ولكن الاستخدام المفرط لها يمكن أن يسبب مشاكل في تصحيح الكود. تأكد من أن العلامات التي تستخدمها واضحة المعنى، ولا تدخل في أعمق مستويات الدورات المتكررة.
إشارة:إذا كنت تريد معرفة ما هو جملة الموسم، يرجى قراءة تعليمات العلامات ECMAScript هذه الفقرة.
- الصفحة السابقة استخدام جملة break
- الصفحة التالية استخدام جملة with