English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriais Básicos de Java

Controle de fluxo do Java

Array do Java

Java orientado a objetos (I)

Java orientado a objetos (II)

Java orientado a objetos (III)

Tratamento de Exceções Java

Lista (List) do Java

Fila (Queue) do Java

conjunto Map do Java

conjunto Set do Java

Java entrada e saída (I/O)/)

Reader do Java/Writer

Outros tópicos do Java

Sentença continue Java

Neste tutorial, você aprenderá sobre a instrução continue do Java e as instruções marcadas como continue, com a ajuda de exemplos.

Ao lidar com loops, às vezes é necessário pular algumas instruções dentro do loop ou encerrar o loop imediatamente sem verificar a expressão de teste.

Neste caso, serão usadas as instruções break e continue. Para entender a instrução break, acesseJava break.

A instrução continue do Java pula a iteração atual do loop (for, while, do…while, etc.) e o controle do programa é transferido para o final do loop. Em seguida, calcula a expressão de teste do loop.

Para o loop for, a instrução de atualização é executada antes da expressão de teste.

A instrução continue quase sempre está eminstrução if ... elseusada em instruções de decisão. Sua sintaxe é:

continue;

Como a instrução continue funciona?

Gráfico de fluxo da instrução continue do Java

Exemplo1instrução continue do Java

class Test {
    public static void main(String[] args) {
      
        // loop for
        for (int i = 1; i <= 10; ++i) {
            //Se o valor de i estiver entre4e9entre
            if (i > 4 && i < 9) {
                continue;
            }      
            System.out.println(i);
        }   
    }
}

Output:

1
2
3
4
9
10

No programa acima, usamos o loop for para imprimir o valor de i em cada iteração. Para entender como o loop for funciona, acesseLoop for Java. Aqui, note as seguintes instruções:

if (i > 5 && i < 9) {
    continue;
}

Isso significa que quando o valor de i for maior que4menor que9Em caso de erro, a função saltará a instrução print dentro do loop. Portanto, saltaremos o valor5、6、7e8saída.

Exemplo2instrução continue em Java

O programa abaixo calcula a soma do5a soma do número de números positivos. Se o usuário inserir um número negativo ou zero, será pulado da computação.

Para aceitar a entrada do usuário, usamos esse objeto Scanner. Para obter mais informações sobre Scanner, acesseJava Scanner.

import java.util.Scanner;
class AssignmentOperator {
    public static void main(String[] args) {
      
        Double number, soma = 0.0;
        //Criar objeto Scanner
        Scanner input = new Scanner(System.in);
      
        for (int i = 1; i < 6; ++i) {
            System.out.print("Insira um número: ");
            //Aceitar entrada de dados do tipo double
            number = input.nextDouble();
         
            //Se number for negativo, pule a iteração
            if (number <= 0.0) {
                continue;
            }
         
            soma += number;
        }
        System.out.println("Soma = ", + soma);
    }
}

Output:

Insira um número: 2.2
Insira um número: 5.6
Insira um número: 0
Insira um número: -2.4
Insira um número: -3
Soma = 7.8

No programa acima, observe as seguintes linhas:

if (number < 0.0) {
    continue;
}

 Isso significa que, quando o usuário inserir um número negativo, a iteração atual do loop será pulada. A próxima iteração começará.

Java continue e loops aninhados

seLoops aninhadosentão, o continue saltará a iteração atual do loop mais interno.

Diagrama de fluxo da instrução continue em loops aninhados

Instrução continue com etiqueta

 Até agora, usamos a instrução continue sem etiqueta. Ela é usada para encerrar o loop mais interno e as instruções switch. No entanto, há outro tipo de instrução continue em Java, chamada de continue com etiqueta.

Diagrama de fluxo da instrução continue com etiqueta em Java

Como mostrado na figura acima, usamos o identificador label para especificar o loop externo. Agora, observe como usamos essa instrução continue (continue label;).

 Aqui, a instrução continue pula a iteração atual da instrução marcada (ou seja, o loop externo). Em seguida, o controle do programa passa para a próxima iteração da instrução marcada (loop externo).

Exemplo3instrução marcada como continue

class LabeledContinue {
    public static void main(String[] args) {
        //The outer for loop is labeled as label     
        first:
        for (int i = 1; i < 6; ++i) {
            for (int j = 1; j < 5; ++j) {
                if (i == 3 || j == 2)
                    //Skipping the iteration of the labeled loop (outer for loop)
                    continue first;
                System.out.println("i = ", + i + "; j = " + j); 
            }
        } 
    }
}

Output:

i = 1; j = 1
i = 2; j = 1
i = 4; j = 1
i = 5; j = 1

 In the above example, the current iteration of the loop marked as first is skipped using the labeled continue statement.

if (i ==3 || j ==2)
    continue first;

 Here, we can see that the outermost for loop is marked as first,

first:
for (int i = 1; i < 6; ++i) {..}

 Therefore, if the value of i is3or the value of j is2and skip the iteration of the outer for loop.

AttentionIt is usually not recommended to use labeled continue, as it makes the code difficult to understand. If you are in a situation where you must use labeled continue, please refactor the code and try to solve it in a different way to make it more readable.