Нет - нет ключевого слова или другого способа сделать это автоматически.
Как вы уже упоминали, вы можете просто изменить переменную (и) условия цикла в вашем цикле.Это просто, если это простой i
счетчик, но, конечно, у вас может быть больше инициализации, чем просто.
Или вы можете сделать что-то вроде следующего:
restartLoop:
while (true) {
for (var i=0, j=100000, x="test"; i < 1000; i++, j--, x+= ".") {
if (/*some condition, want to restart the loop*/)
continue restartLoop;
}
break;
}
continue restartLoop
отскочит назад, чтобы продолжить следующую итерацию цикла while
, которая сразу же начнет цикл for
с самого начала, включая весь код инициализации.Если for
обычно выходит из оператора break
после того, как он выйдет из цикла while.
Я не рекомендую делать это в общем смысле, но если ваш процесс инициализации цикла был действительно сложно, это может стоить того, потому что тогда вам не нужно будет повторять все это внутри цикла.Если вам нужно было сделать даже больше инициализации, чем уместно в выражении инициализации оператора for
, вы можете легко поместить его непосредственно перед циклом for
внутри while
, и все это будет перезапущено ...