Romper/Continuar un bucle for externo (anidado)<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Si tengo 2 bucles for anidados, ¿cómo puedo romper/continuar el bucle externo?
ejemplo:
para (i=0, i<10, i++,
para (j=0, j<10, j++,
// Hacer cosas
si ( ,
// Continuar con la siguiente i
); // terminara si
); // finaliza el ciclo interno
// Haz algunas cosas más
); // finaliza el bucle exterior
Re: Romper/Continuar un bucle for externo (anidado)Gracias por la respuesta.
No es completamente lo que estoy buscando.
Considera esto:
Para( i = 0, i <= 5, i++,
Para( z = 0, z < 5, z++,
si (i== 3, romper());
Imprimir( "i=" || Char( i ) || " & z=" || Char( z ) )
);
Imprimir ( "EXTERIOR i = " || Char (i));
);
Si ejecuto este script, se imprime la i exterior.El verdadero problema aquí es 'continuar con la siguiente i', sin que se imprima la segunda línea de impresión (OUTER i = ...).¿Hay una manera fácil de hacerlo, o solo tengo que usar un booleano 'continueOuterLoop'?
Gracias.
solución booleana:
Para( i = 0, i <= 5, i++,
continuar bucle exterior = 0;
Para( z = 0, z < 5, z++,
if (i== 3, continueOuterLoop = 1; Break(); );
Imprimir( "i=" || Char( i ) || " & z=" || Char( z ) )
);
si (continuar bucle exterior == 0,
Imprimir ("EXTERIOR i = " || Char (i))
)
);
Re: Romper/Continuar un bucle for externo (anidado)hola enero,
intente usar el Break(). el siguiente script dejará de ejecutarse cuando llegue a 3.
Para( i = 0, i <= 5, i++,
Para( z = 0, z < 5, z++,
si (i >= 3, Romper());
Imprimir( "i=" || Char( i ) || " & z=" || Char( z ) )
)
);
el siguiente script simplemente omitirá i=3 y continuará con i=4 e i=5.
Para( i = 0, i <= 5, i++,
Para( z = 0, z < 5, z++,
si (i== 3, romper());
Imprimir( "i=" || Char( i ) || " & z=" || Char( z ) )
)
);
por favor, eche un vistazo a este enlace para ver la explicación sobre el uso de Break y while:
Iterar
Ron
Re: Interrumpir/Continuar un bucle for externo (anidado)Hola Jan, ¿no podrías simplemente agregar un i++ en lugar de Break() durante el bucle For interno?
También puedes establecer z=0 después de i++, si quieres reiniciar el bucle For interno sin pasar al bucle For externo.
Por ejemplo:
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));
);