¿Qué es la palabra clave “continuar” y cómo funciona en Java?

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?

Una instrucción continue sin una etiqueta se volverá a ejecutar a partir de la condición del ciclo while o do más interno, y de la expresión de actualización del ciclo for interno. A menudo se usa para finalizar de forma anticipada el procesamiento de un bucle y, por lo tanto, evitar declaraciones anidadas profundamente. En el siguiente ejemplo, continue obtendrá la siguiente línea, sin procesar la siguiente instrucción en el ciclo.

 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 usar para escapar bucles profundamente nesteds o simplemente para mayor claridad.

Algunas veces, continue también se usa como 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 instrucción sin una etiqueta también existe en C y C ++. El equivalente en Perl es el next .

No se recomienda este tipo de flujo de control, pero si lo elige también puede usar continue para simular una forma limitada de goto . En el siguiente ejemplo, continue ejecutará de nuevo el ciclo vacío for (;;) .

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

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 ciclo (salta al código debajo de él).

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

Veamos un ejemplo:

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

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

Si piensas en el cuerpo de un ciclo como una subrutina, continue es una especie de return . La misma palabra clave existe en C y tiene 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á solo los números impares.

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

Como ya han dicho otros, continue hacia la siguiente iteración del ciclo, mientras que el break mueve fuera del ciclo circundante.

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

En mi humilde opinión, es mejor usarlos como una medida de último recurso, y luego asegurarse de que su uso se agrupe estrechamente al principio o al final del ciclo para que el próximo desarrollador pueda ver los “límites” del ciclo en una pantalla .

continue , break y return (que no sea el único retorno verdadero al final de su método) todos entran dentro de la categoría general de “GOTO ocultos”. Ponen el control de bucle y función en lugares inesperados, lo que eventualmente causa errores.

Como ya se mencionó, continue omitirá el procesamiento del código que se encuentra debajo y hasta el final del ciclo. Luego, se mueve al estado 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 indicado).

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 comienzo del ciclo.

Esta es la razón por la cual muchas personas no responden correctamente lo que generará el siguiente código.

  Random r = new Random(); Set aSet= new HashSet(); 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 al 100% … ¡estás equivocado!

“continuar” en Java significa ir al final del ciclo actual, significa: si el comstackdor ve continuar en un ciclo, pasará a la siguiente iteración

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

el comstackdor ignorará el código de impresión cuando vea que continúa avanzando hacia la siguiente iteración

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

Considere una condición If Else. Una instrucción continue 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 un descanso deja el ciclo. Considere el siguiente progtwig. ‘

 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."); } } 

Imprimirá: aa cc Fuera del ciclo.

Si usa break en lugar de continue (After if), solo imprimirá aa y saldrá del ciclo .

Si la condición “bb” es igual a ss, se cumple: para Continuar: pasa a la siguiente iteración, es decir, “cc” .equals (ss). For Break: Sale del ciclo e imprime “Out of the loop”.

Llego un poco tarde a la fiesta, pero …

Vale la pena mencionar que continue es útil para bucles vacíos donde 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 carácter y anexarlo al buffer se realiza en la expresión que controla el ciclo while. La instrucción continue sirve como un indicador visual de que el ciclo no necesita un cuerpo.

Es un poco más obvio que el equivalente:

 while (...) { } 

y definitivamente mejor (y más seguro) estilo de encoding que usar una statement vacía como:

 while (...) ; 

Básicamente en Java, continuar es una statement. Por lo tanto, la statement de continuación se usa normalmente con los bucles para omitir la iteración actual.

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

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

Espero eso ayude !!