freeCodeCamp/curriculum/challenges/arabic/02-javascript-algorithms-an.../debugging/prevent-infinite-loops-with...

3.4 KiB

id title challengeType videoUrl localeTitle
587d7b86367417b2b2512b3d Prevent Infinite Loops with a Valid Terminal Condition 1 منع حلقات لا نهائية مع شرط محطة صالح

Description

الموضوع الأخير هو حلقة اللانهائي اللعين. الحلقات هي أدوات رائعة عندما تحتاج إلى برنامج لتشغيل كتلة التعليمات البرمجية لعدد معين من المرات أو حتى يتم استيفاء الشرط ، ولكنها تحتاج إلى حالة طرفية تنهي التكرار. من المحتمل أن تؤدي الحلقات اللانهائية إلى تجميد المتصفح أو تعطله ، وتتسبب في حدوث فشل في تنفيذ البرنامج العام ، وهو ما لا يريده أحد. كان هناك مثال حلقة لا نهائية في مقدمة هذا القسم - ليس لديها أي شرط المحطة للخروج من while حلقة داخل loopy() . لا ندعو هذه الوظيفة!
function loopy () {
احيانا صحيح) {
console.log ("Hello، world!")؛
}
}
إنها وظيفة المبرمج لضمان أن يتم الوصول في نهاية المطاف إلى حالة المحطة الطرفية ، التي تخبر البرنامج عند الخروج من شفرة التكرار. خطأ واحد هو زيادة أو إنقاص متغير عداد في الاتجاه الخاطئ من حالة المحطة الطرفية. واحد آخر هو بطريق الخطأ إعادة تعيين عداد أو فهرس متغير داخل رمز التكرار ، بدلاً من زيادة أو إنقاصه.

Instructions

تحتوي الدالة myFunc() على حلقة لانهائية نظرًا لأن حالة المحطة الطرفية i != 4 لن يتم تقييمها أبداً إلى false (وكسر الحلقات) - سوف i بزيادة 2 لكل مسار ، والقفز مباشرة فوق 4 لأن i هو أمر غريب للبدء. إصلاح عامل مقارنة في حالة محطة حتى الحلقة يعمل فقط ل i أقل من أو يساوي 4.

Tests

tests:
  - text: التعليمات البرمجية يجب أن تتغير عامل مقارنة في حالة الطرفية (الجزء الأوسط) من <code>for</code> حلقة.
    testString: 'assert(code.match(/i\s*?<=\s*?4;/g).length == 1, "Your code should change the comparison operator in the terminal condition (the middle part) of the <code>for</code> loop.");'
  - text: يجب أن تقوم التعليمات البرمجية الخاصة بك بإصلاح عامل المقارنة في حالة طرفية الحلقة.
    testString: 'assert(!code.match(/i\s*?!=\s*?4;/g), "Your code should fix the comparison operator in the terminal condition of the loop.");'

Challenge Seed

function myFunc() {
  for (let i = 1; i != 4; i += 2) {
    console.log("Still going!");
  }
}

Solution

// solution required