No - non c'è parola chiave o altro modo per farlo automaticamente.
Come già accennato, è possibile modificare le variabili di condizione del ciclo all'interno del loop. Facile se si tratta di un semplice contatore i
, ma ovviamente è possibile avere più inizializzazioni da fare rispetto a un semplice contatore.
Oppure si può fare qualcosa di simile al seguente:
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;
}
Il continue restartLoop
salterà di nuovo fuori per continuare con la prossima iterazione del while
ciclo, che poi inizia immediatamente il loop for
dall'inizio compresi tutti il codice di inizializzazione. Se lo standard for
esce normalmente dall'istruzione break
dopo l'interruzione del ciclo while contenente.
Non consiglio davvero a fare questo in senso generale, ma se il processo di ciclo di inizializzazione era davvero complicato potrebbe essere vale la pena perché allora non avrebbe bisogno di ripetere il tutto all'interno del ciclo. Se è necessario eseguire un'inizializzazione ancora maggiore di quella che si adatta perfettamente all'espressione di inizializzazione dell'istruzione for
, è possibile inserirla facilmente prima del ciclo for
all'interno dello while
e verrà eseguito di nuovo ...
è possibile riavviare loop solo riposando banco come nel ciclo for è possibile reimpostare indice 0, si riavvia – user889030