3.9 KiB
3.9 KiB
id | title | challengeType | videoUrl | localeTitle |
---|---|---|---|---|
587d7b86367417b2b2512b3d | Prevent Infinite Loops with a Valid Terminal Condition | 1 | Предотвращение бесконечных циклов с допустимым условием терминала |
Description
while
петлях внутри loopy()
. Не вызывайте эту функцию! функция loopy () {Задача программиста заключается в том, чтобы в конечном итоге было достигнуто условие терминала, которое сообщает программе о выходе из кода цикла. Одна ошибка - это увеличение или уменьшение переменной счетчика в неправильном направлении от состояния терминала. Другой случайный сброс счетной или индексной переменной в коде цикла, вместо того, чтобы увеличивать или уменьшать ее.
while (true) {
console.log («Привет, мир!»);
}
}
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