Как справляться с бесконечными циклами? Js
У меня невероятный случай.
По всем законам программирования цикл должен при запуске страницы срабатывать без проблем, но у меня каждый второй раз страницы не грузит из-за инфинити цикла
Есть ли какой-либо приём, что бы страницы останавливала проблемный цикл в случае определенного времени его выполнения? Желательно снова запустить его после остановки.
Если у тебя получается бесконечный цикл, значит в логике твоего кода ошибка, которую надо исправить. Сам по себе цикл бесконечным не становится. Так что надо не искать способ остановить цикл, а разбираться, где ты напахал.
Пиши циклы правильно и никаких зависаний не будет
Если цикл while, использую дополнительный счетчик, до которого в любом случае нормальный цикл не мог бы дойти
let i = 0;
while( true ) {
if( i++ > 10000 ){
throw new Error("Бесконечный цикл!");
break;
}
//...
}
_______________
let i = 0;
while( true && i < 10000 ) {
i++
//...
}
________
Но вообще не нравится while как-раз из-за того, что любит зацикливаться) Стараюсь везде использовать for.
Основная причина в том что ожидания не всегда сходятся с реальностью.
попробуй выполнить к консоле две строки и понять чем отличаются эти строки
1. --> 0.01 + 0.02 == 0.03
2. --> 0.1 + 0.2 == 0.3
Если где ошибка и почему так происходит
Просто прописывай всегда условие, при котором он будет прерываться.