Предотвращение бесконечных циклов с допустимым конечным условием
Последняя тема - ужасный бесконечный цикл. Циклы - отличные инструменты, когда вам нужно, чтобы ваша программа запускала блок кода определенное количество раз или до тех пор, пока не будет выполнено условие, но им нужно конечное условие, которое завершает цикл. Бесконечные циклы могут привести к зависанию или сбою браузера и вызвать общий беспорядок при выполнении программы, который никому не нужен.
Во введении к этому разделу был пример бесконечного цикла - у него не было конечного условия для выхода из цикла while внутри loopy (). НЕ вызывайте эту функцию!
function loopy() {
while(true) {
console.log("Hello, world!");
}
}
Задача программиста - убедиться, что условие терминала, которое сообщает программе, когда следует выйти из кода цикла, в конечном итоге будет достигнуто. Одна из ошибок заключается в увеличении или уменьшении значения переменной счетчика в неправильном направлении от конечного условия. Другой - случайно сбрасывает счетчик или индексную переменную в коде цикла, вместо того, чтобы увеличивать или уменьшать ее.
Функция myFunc()
содержит бесконечный цикл, потому что конечное условие i != 4
никогда не будет оцениваться как ложное
(и прерывать цикл) - i
будет увеличиваться на 2 каждый проход и перескакивать прямо через 4, поскольку i
нечетное изначально.
Исправьте оператор сравнения в конечном условии, чтобы цикл выполнялся только для i
, меньшего или равного 4.