Кроме того, «такая конструкция в основном представляет собой goto
в сопротивлении». Я бы предпочел видеть логику, написанную с помощью оператора continue
, например:
while (true) {
console.log('start');
if (x == y) continue;
console.log('foo');
if (q != z) continue;
...
}
Я хочу сказать, что «это все еще цикл while
, как я и сказал», за исключением того, что он не всегда достигает конца. Когда он не достигает конца, он всегда возвращается наверх.
Оператор break
наиболее распространен в случае while (true)
и, на самом деле, ожидается любым, кто читает ваш код. Логика работает до тех пор, пока не будет выполнено какое-то условие, после чего она «выходит из цикла» и переходит к следующему за ним утверждению.
Когда вы "break
похожи на goto
", ваша логика становится намного труднее разгадать и понять. Это очень важное соображение. «Пиши просто и четко, и так, как обычно ожидаешь. Не бросай кривая».