Vi esta palabra clave por primera vez y me preguntaba si alguien podría explicarme lo que hace.
- ¿Cuál es la
continue
palabra clave? - ¿Como funciona?
- Cuando se usa
Vi esta palabra clave por primera vez y me preguntaba si alguien podría explicarme lo que hace.
continue
palabra clave?Respuestas:
Una continue
declaración sin una etiqueta se volverá a ejecutar desde la condición de la interna while
o do
bucle y de la expresión de actualización de la más interna for
de bucle. A menudo se usa para terminar anticipadamente el procesamiento de un ciclo y, por lo tanto, evitar if
declaraciones profundamente anidadas . En el siguiente ejemplo continue
obtendrá la siguiente línea, sin procesar la siguiente instrucció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 usar para escapar de bucles profundamente anidados, o simplemente para mayor claridad.
A veces continue
también se usa como marcador de posición para aclarar un cuerpo de bucle vacío.
for (count = 0; foo.moreData(); count++)
continue;
La misma declaración sin una etiqueta también existe en C y C ++. El equivalente en Perl es next
.
No se recomienda este tipo de flujo de control, pero si así lo desea también se puede utilizar continue
para simular una forma limitada de goto
. En el siguiente ejemplo continue
, volverá a ejecutar el for (;;)
bucle vacío .
aLoopName: for (;;) {
// ...
while (someCondition)
// ...
if (otherCondition)
continue aLoopName;
continue
es algo así como goto
. ¿Estás familiarizado con 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 resto del procesamiento del código dentro del ciclo para la iteración actual, pero continúa el ciclo.
Si piensas en el cuerpo de un bucle como una subrutina, continue
es algo así 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 podría usar alguna refactorización, especialmente si la declaración while
o for
loop no está a la vista de inmediato. Lo mismo es cierto return
en el medio de un método, pero por una razón ligeramente diferente.
Como ya han dicho otros, continue
avanza a la siguiente iteración del bucle, mientras que break
sale del bucle de cierre.
Estos pueden ser bombas de tiempo de mantenimiento porque no existe un vínculo inmediato entre el continue
/ break
y el ciclo que continúa / se rompe aparte del contexto; agregue un bucle interno o mueva las "tripas" del bucle a un método separado y tendrá un efecto oculto de continue
/ break
fallar.
En mi humilde opinión, es mejor usarlos como 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
(aparte del One True Return al final de su método) todos caen en la categoría general de "GOTO ocultos". Colocan el control de bucle y función en lugares inesperados, lo que eventualmente causa errores.
"continuar" en Java significa ir al final del ciclo actual, significa: si el compilador 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 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+"");
}
Como ya se mencionó continue
, omitirá el procesamiento del código debajo y hasta el final del ciclo. Entonces, te trasladan 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
que se traslade a la condición en la parte inferior después de uncontinue
, no al comienzo del bucle.
Es por eso 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 su respuesta es que aSet
contendrá números impares solo 100% ... ¡está equivocado!
Continuar es una palabra clave en Java y se usa para omitir la iteración actual.
Suponga que desea imprimir todos los números impares del 1 al 100
public class Main {
public static void main(String args[]) {
//Program to print all odd numbers from 1 to 100
for(int i=1 ; i<=100 ; i++) {
if(i % 2 == 0) {
continue;
}
System.out.println(i);
}
}
}
La instrucción continue en el programa anterior simplemente omite la iteración cuando soy par e imprime el valor de i cuando es impar.
La instrucción Continuar simplemente lo saca del ciclo sin ejecutar las declaraciones restantes dentro del ciclo y desencadena la siguiente iteración.
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 círculo. 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.");
}
}
Imprimirá: aa cc Fuera del bucle.
Si usa break en lugar de continue (After if.), Solo imprimirá aa y saldrá del bucle .
Si se cumple la condición "bb" igual a ss: Para continuar: pasa a la siguiente iteración, es decir, "cc" .equals (ss). Para descanso: sale del bucle e imprime "Fuera del bucle".
break
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 personaje y agregarlo se buffer
realiza en la expresión que controla el while
bucle. La continue
declaración 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 un estilo de codificación mejor (y más seguro) que usar una declaración vacía como:
while (...)
;
while
convirtiera en el cuerpo de la while
cláusula, y que no sería visualmente obvio. Un explícito continue
es obvio y transmite una intención que no hace una declaración vacía.
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 usa en Java, consulte el enlace a continuación. Tiene explicación con ejemplo.
https://www.flowerbrackets.com/continue-java-example/
Espero eso ayude !!
continue
debe estar dentro de un bucle. De lo contrario, se muestra el siguiente error:
Continuar fuera del circuito
La instrucción continue se usa en la estructura de control de bucle cuando necesita saltar a la siguiente iteración del bucle de inmediato.
Se puede usar con for loop o while loop. La instrucción Java continue se usa para continuar el ciclo. Continúa el flujo actual del programa y omite el código restante en la condición especificada.
En caso de un bucle interno, continúa solo el bucle interno.
Podemos usar la instrucción Java continue en todos los tipos de bucles, como for loop, while loop y do-while loop.
por ejemplo
class Example{
public static void main(String args[]){
System.out.println("Start");
for(int i=0; i<10; i++){
if(i==5){continue;}
System.out.println("i : "+i);
}
System.out.println("End.");
}
}
salida:
Start
i : 0
i : 1
i : 2
i : 3
i : 4
i : 6
i : 7
i : 8
i : 9
End.
[número 5 es saltar]