Vi essa palavra-chave pela primeira vez e fiquei pensando se alguém poderia me explicar o que faz.
- Qual é a
continue
palavra - chave? - Como funciona?
- Quando é usado?
Vi essa palavra-chave pela primeira vez e fiquei pensando se alguém poderia me explicar o que faz.
continue
palavra - chave?Respostas:
Uma continue
instrução sem um rótulo será reexecutada da condição do mais interno while
ou do do
loop e da expressão de atualização do for
loop mais interno . É frequentemente usado para finalizar antecipadamente o processamento de um loop e, assim, evitar if
instruções profundamente aninhadas . No exemplo a seguir continue
, obterá a próxima linha, sem processar a seguinte instrução no loop.
while (getNext(line)) {
if (line.isEmpty() || line.isComment())
continue;
// More code here
}
Com um rótulo, continue
será reexecutado a partir do loop com o rótulo correspondente, em vez do loop mais interno. Isso pode ser usado para escapar de loops profundamente aninhados ou simplesmente para maior clareza.
Às vezes, continue
também é usado como um espaço reservado para tornar um corpo de loop vazio mais claro.
for (count = 0; foo.moreData(); count++)
continue;
A mesma declaração sem um rótulo também existe em C e C ++. O equivalente em Perl é next
.
Esse tipo de fluxo de controle não é recomendado, mas se você escolher, também poderá usar continue
para simular uma forma limitada de goto
. No exemplo a seguir, continue
ele executará novamente o for (;;)
loop vazio .
aLoopName: for (;;) {
// ...
while (someCondition)
// ...
if (otherCondition)
continue aLoopName;
continue
é tipo como goto
. Você está familiarizado break
? É mais fácil pensar neles em contraste:
break
finaliza o loop (salta para o código abaixo dele).
continue
finaliza o restante do processamento do código dentro do loop para a iteração atual, mas continua o loop.
Se você pensa no corpo de um loop como uma sub-rotina, continue
é mais ou menos como return
. A mesma palavra-chave existe em C e serve ao mesmo objetivo. Aqui está um exemplo artificial:
for(int i=0; i < 10; ++i) {
if (i % 2 == 0) {
continue;
}
System.out.println(i);
}
Isso imprimirá apenas os números ímpares.
Geralmente, vejo continue
(e break
) como um aviso de que o código pode usar alguma refatoração, especialmente se o while
oufor
declaração loop não estiver à vista imediatamente. O mesmo acontece return
no meio de um método, mas por um motivo um pouco diferente.
Como outros já disseram, continue
passa para a próxima iteração do loop, enquanto break
sai do loop fechado.
Podem ser bombas de tempo de manutenção porque não há um vínculo imediato entre o continue
/ break
e o loop que continua / interrompe, exceto o contexto; adicione um loop interno ou mova as "tripas" do loop para um método separado e você terá um efeito oculto do continue
/break
falha.
IMHO, é melhor usá-los como uma medida de último recurso e garantir que seu uso seja agrupado firmemente no início ou no final do loop, para que o próximo desenvolvedor possa ver os "limites" do loop em uma tela .
continue
, break
E return
(que não seja o verdadeiro retorno no final do seu método), todos caem na categoria geral de "GOTOs escondidos". Eles colocam o controle de loop e função em locais inesperados, o que eventualmente causa bugs.
"continue" em Java significa ir para o final do loop atual, significa: se o compilador vê continuar em um loop, ele irá para a próxima iteração
Exemplo: este é um código para imprimir os números ímpares de 1 a 10
o compilador ignorará o código de impressão sempre que vir continuar na próxima iteração
for (int i = 0; i < 10; i++) {
if (i%2 == 0) continue;
System.out.println(i+"");
}
Como já mencionado continue
, pulará o processamento do código abaixo e até o final do loop. Em seguida, você é movido para a condição do loop e executa a próxima iteração se essa condição ainda persistir (ou se houver um sinalizador, para a condição do loop indicado).
Deve-se destacar que, no caso de do - while
você ser movido para a condição na parte inferior após umcontinue
, não no início do loop.
É por isso que muitas pessoas falham em responder corretamente o que o código a seguir irá gerar.
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);
* Se sua resposta for que aSet
conterá números ímpares apenas 100% ... você está errado!
Continue é uma palavra - chave em Java e é usada para pular a iteração atual.
Suponha que você queira imprimir todos os números ímpares de 1 a 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);
}
}
}
A instrução continue no programa acima simplesmente ignora a iteração quando i é par e imprime o valor de i quando é ímpar.
A instrução Continue simplesmente tira você do loop sem executar as instruções restantes dentro do loop e dispara a próxima iteração.
Considere uma condição If Else. Uma instrução continue executa o que existe em uma condição e sai da condição, ou seja, passa para a próxima iteração ou condição. Mas uma pausa sai do circuito. Considere o seguinte 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.");
}
}
Ele será impresso: aa cc Fora do loop.
Se você usar quebra no lugar de continuar (Depois de se.), Ela imprimirá aa e fora do loop .
Se a condição "bb" for igual a ss, for satisfeita: For Continue: Ir para a próxima iteração, ou seja, "cc" .equals (ss). For Break: sai do loop e imprime "Out of the loop".
break
Estou um pouco atrasado para a festa, mas ...
Vale ressaltar que continue
é útil para loops vazios, onde todo o trabalho é feito na expressão condicional que controla o loop. Por exemplo:
while ((buffer[i++] = readChar()) >= 0)
continue;
Nesse caso, todo o trabalho de ler um caractere e anexá-lo buffer
é feito na expressão que controla o while
loop. A continue
declaração serve como um indicador visual de que o loop não precisa de um corpo.
É um pouco mais óbvio que o equivalente:
while (...)
{ }
e um estilo de codificação definitivamente melhor (e mais seguro) do que usar uma declaração vazia como:
while (...)
;
while
ao corpo da while
cláusula e que não seria visualmente óbvio. Um explícito continue
é óbvio e transmite uma intenção que uma declaração vazia não.
Basicamente em java, continue é uma declaração. A instrução continue é normalmente usada com os loops para pular a iteração atual.
Para como e quando é usado em java, consulte o link abaixo. Tem explicação com exemplo.
https://www.flowerbrackets.com/continue-java-example/
Espero que ajude !!
continue
deve estar dentro de um loop Caso contrário, ele mostraO erro abaixo:
Continue fora do loop
A instrução continue é usada na estrutura de controle de loop quando você precisa pular para a próxima iteração do loop imediatamente.
Pode ser usado com loop for ou while. A instrução continue do Java é usada para continuar o loop. Ele continua o fluxo atual do programa e ignora o código restante na condição especificada.
No caso de um loop interno, ele continua apenas o loop interno.
Podemos usar a instrução Java continue em todos os tipos de loops, como loop for, while loop e do-while.
por exemplo
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.");
}
}
resultado:
Start
i : 0
i : 1
i : 2
i : 3
i : 4
i : 6
i : 7
i : 8
i : 9
End.
[número 5 é pular]