Nie - nie ma słów kluczowych lub inny sposób to zrobić automatycznie.
Jak już wspomniano, wystarczy zmodyfikować zmienną (y) pętli w pętli. To proste, jeśli jest to prosty licznik i
, ale oczywiście możesz mieć więcej inicjalizacji niż zwykły licznik.
Albo można zrobić coś jak następuje:
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
przeskoczy z powrotem, aby kontynuować następnej iteracji pętli while
, które następnie natychmiast rozpoczyna pętlę for
od początku w tym wszystkim kod inicjalizacyjny. Jeśli for
kończy normalnie instrukcję break
po jej wyrwaniu z pętli zawierającej.
Naprawdę nie polecam robić tego w ogólnym sensie, ale jeśli proces inicjalizacji pętli był naprawdę może być tego wart, ponieważ wtedy nie musiałbyś powtarzać tego wszystkiego w pętli. Jeśli potrzebna jest jeszcze większa inicjalizacja niż ładnie pasuje w wyrażeniu inicjalizacyjnym oświadczenia for
, można z łatwością umieścić ją tuż przed pętlą for
wewnątrz while
i wszystko zostanie ponownie uruchomione ...
można ponownie uruchomić pętlę po prostu odpoczynku licznik jak w pętli for można zresetować indeks 0, to restart – user889030