Interrompi/Continua un ciclo for esterno (nidificato).<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Se ho 2 cicli for nidificati, come posso interrompere/continuare il ciclo esterno?
esempio:
per (i=0, i<10, i++,
per (j=0, j<10, j++,
// Fare cose
if ( ,
// Continua con il prossimo i
); // finisci se
); // termina il ciclo interno
// Fai altre cose
); // termina il ciclo esterno
Ri: Interrompi/Continua un ciclo for esterno (nidificato).Grazie per la risposta.
Non è completamente quello che sto cercando.
Considera questo:
For( i = 0, i <= 5, i++,
For( z = 0, z < 5, z++,
if (i== 3, Break());
Print( "i=" || Carattere( i ) || " & z=" || Carattere( z ) )
);
Print ( "ESTERNO i = " || Char (i));
);
Se eseguo questo script, viene stampato l'i esterno.Il vero problema qui è 'continuare con la prossima i', senza che venga stampata la seconda riga di stampa (OUTER i = ...).C'è un modo semplice per farlo o devo solo usare un 'continueOuterLoop' booleano?
Grazie.
Soluzione booleana:
For( i = 0, i <= 5, i++,
continuaOuterLoop = 0;
For( z = 0, z < 5, z++,
if (i== 3, continueOuterLoop = 1; Break(); );
Print( "i=" || Carattere( i ) || " & z=" || Carattere( z ) )
);
if (continueOuterLoop == 0,
Stampa ( "ESTERNO i = " || Char (i))
)
);
Ri: Interrompi/Continua un ciclo for esterno (nidificato).ciao Jan,
prova a usare Break (). il seguente script smetterà di funzionare quando raggiungerò 3.
For( i = 0, i <= 5, i++,
For( z = 0, z < 5, z++,
if (i >= 3, Break());
Print( "i=" || Carattere( i ) || " & z=" || Carattere( z ) )
)
);
lo script successivo salterà semplicemente i=3 e continuerà con i=4 e i=5.
For( i = 0, i <= 5, i++,
For( z = 0, z < 5, z++,
if (i== 3, Break());
Print( "i=" || Carattere( i ) || " & z=" || Carattere( z ) )
)
);
si prega di dare un'occhiata a questo link per la spiegazione sull'uso di Break e while:
Iterare
Ron
Re: Interrompere/continuare un ciclo for esterno (annidato)Ciao Jan, non potresti semplicemente aggiungere i++ invece di Break() durante il ciclo For interno?
È anche possibile impostare z=0 dopo i++, se si desidera riavviare il ciclo For interno senza passare al ciclo For esterno.
Per esempio:
For( i = 0, i <= 5, i++,
For( z = 0, z < 5, z++,
if (i== 3,
Print( "i=" || Char( i ) || " & z=" || Char( z ) );
i++; // I put the i++ after the print so that it prints i=3
);
);
Print ( "OUTER i = " || Char (i));
);