while statement java keyword continue

statement - ¿Qué es la palabra clave "continuar" y cómo funciona en Java?



java continue statement (10)

"continuar" en Java significa ir al final del bucle actual, significa: si el compilador ve continuar en un bucle, pasará a la siguiente iteración

Ejemplo: Este es un código para imprimir los números impares del 1 al 10

el compilador ignorará el código de impresión cada vez que vea continuar moviéndose a la siguiente iteración

for (int i = 0; i < 10; i++) { if (i%2 == 0) continue; System.out.println(i+""); }

Vi esta palabra clave por primera vez y me preguntaba si alguien podría explicarme qué hace.

  • ¿Cuál es la palabra clave continue ?
  • ¿Como funciona?
  • ¿Cuándo se usa?

Básicamente en java, continuar es una declaración. Por lo tanto, la instrucción continue se usa normalmente con los bucles para omitir la iteración actual.

Para saber cómo y cuándo se utiliza en java, consulte el enlace a continuación. Tiene explicación con ejemplo.

https://www.flowerbrackets.com/continue-java-example/

Espero eso ayude !!


Como ya se mencionó, continue omitirá el procesamiento del código debajo y hasta el final del bucle. Luego, se pasa a la condición del bucle y ejecuta la siguiente iteración si esta condición aún se mantiene (o si hay un indicador, a la condición del bucle denotado).

Debe resaltarse que en el caso de do - while se mueve a la condición en la parte inferior después de continue , no al principio del bucle.

Es por esto que muchas personas no responden correctamente lo que generará el siguiente código.

Random r = new Random(); Set<Integer> aSet= new HashSet<Integer>(); int anInt; do { anInt = r.nextInt(10); if (anInt % 2 == 0) continue; System.out.println(anInt); } while (aSet.add(anInt)); System.out.println(aSet);

* Si tu respuesta es que aSet contendrá números impares solo el 100% ... ¡estás equivocado!


Considerar una condición de Si Else Una instrucción de continuación ejecuta lo que hay en una condición y sale de la condición, es decir, salta a la siguiente iteración o condición. Pero una ruptura deja el bucle. Considere el siguiente programa. ''

public class ContinueBreak { public static void main(String[] args) { String[] table={"aa","bb","cc","dd"}; for(String ss:table){ if("bb".equals(ss)){ continue; } System.out.println(ss); if("cc".equals(ss)){ break; } } System.out.println("Out of the loop."); } }

Se imprimirá: aa cc Fuera del bucle.

Si usa el comando break en lugar de continue (After if.), Solo imprimirá aa y saldrá del bucle .

Si se cumple la condición "bb" es igual a ss: Para Continuar: Va a la siguiente iteración, es decir, "cc" .equals (ss). For Break: sale del bucle e imprime "Out of the loop".


En general, veo continue (y break ) como una advertencia de que el código podría usar algo de refactorización, especialmente si el while o la declaración de bucle no están inmediatamente a la vista. Lo mismo es cierto para el return en medio de un método, pero por una razón ligeramente diferente.

Como ya han dicho otros, continue a la siguiente iteración del bucle, mientras que break mueve fuera del bucle envolvente.

Estas pueden ser bombas de tiempo de mantenimiento porque no hay un vínculo inmediato entre continue / break y el bucle que continúa / rompe aparte del contexto; agregue un bucle interno o mueva las "entrañas" del bucle a un método separado y tendrá un efecto oculto de la falla de continue / break .

En mi humilde opinión, es mejor usarlos como medida de último recurso, y luego asegurarse de que su uso esté agrupado firmemente al comienzo o al final del ciclo para que el siguiente desarrollador pueda ver los "límites" del circuito en una pantalla. .

continue , break y return (aparte del One True Return al final de su método), todos caen en la categoría general de "GOTOs ocultos". Colocan el control de bucles y funciones en lugares inesperados, lo que eventualmente causa errores.


Si piensas en el cuerpo de un bucle como una subrutina, continue es algo así como un return . La misma palabra clave existe en C, y sirve para el mismo propósito. Aquí hay un ejemplo artificial:

for(int i=0; i < 10; ++i) { if (i % 2 == 0) { continue; } System.out.println(i); }

Esto imprimirá sólo los números impares.


Una instrucción de continue sin etiqueta se volverá a ejecutar desde la condición del bucle while o do más interno, y desde la expresión de actualización del bucle for más interno. A menudo se utiliza para finalizar anticipadamente el procesamiento de un bucle y, por lo tanto, evitar las declaraciones if anidadas. En el siguiente ejemplo, continue obtendrá la siguiente línea, sin procesar la siguiente declaración en el bucle.

while (getNext(line)) { if (line.isEmpty() || line.isComment()) continue; // More code here }

Con una etiqueta, continue se volverá a ejecutar desde el bucle con la etiqueta correspondiente, en lugar del bucle más interno. Esto se puede utilizar para escapar de bucles profundamente anidados, o simplemente para mayor claridad.

A veces, continue también se utiliza como un marcador de posición para hacer que un cuerpo de bucle vacío sea más claro.

for (count = 0; foo.moreData(); count++) continue;

La misma declaración sin etiqueta también existe en C y C ++. El equivalente en Perl es el next .

Este tipo de flujo de control no se recomienda, pero si así lo desea, también puede usar la función de simulación continue de goto . En el siguiente ejemplo, la continue volverá a ejecutar el bucle vacío for (;;) .

aLoopName: for (;;) { // ... while (someCondition) // ... if (otherCondition) continue aLoopName;


Veamos un ejemplo:

int sum = 0; for(int i = 1; i <= 100 ; i++){ if(i % 2 == 0) continue; sum += i; }

Esto obtendría la suma de solo números impares de 1 a 100.


continue es algo así como goto . ¿Estás familiarizado con el break ? Es más fácil pensar en ellos en contraste:

  • break termina el bucle (salta al código debajo de él).

  • continue termina el resto del procesamiento del código dentro del bucle para la iteración actual, pero continúa el bucle.


Llego un poco tarde a la fiesta, pero ...

Vale la pena mencionar que continue es útil para bucles vacíos en los que todo el trabajo se realiza en la expresión condicional que controla el bucle. Por ejemplo:

while ((buffer[i++] = readChar()) >= 0) continue;

En este caso, todo el trabajo de leer un personaje y agregarlo al buffer se realiza en la expresión que controla el bucle while. La declaración de continue sirve como un indicador visual de que el bucle no necesita un cuerpo.

Es un poco más obvio que el equivalente:

while (...) { }

y definitivamente un estilo de codificación mejor (y más seguro) que usar una declaración vacía como:

while (...) ;