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

Tutoriais Básicos de Java

Controle de fluxo do Java

Java Array

Java Orientação a Objetos (I)

Java Orientação a Objetos (II)

Java Orientação a Objetos (III)

Tratamento de Exceções Java

Java Lista (List)

Java Queue (Fila)

Java Map Collection

Java Set Collection

Java Input/Output (I/O)/O)

Reader do Java/Writer

Outros tópicos do Java

Sentença break Java

Neste tutorial, você aprenderá sobre o statement break, que é marcado como break statement no Java.

Quando se usa loops, às vezes é desejável pular algumas sentenças dentro do loop ou terminar o loop imediatamente sem verificar a expressão de teste.

Neste caso, usaremos os statements break e continue. Você aprenderá sobre eles no próximo capítulo.continue statement.

O break statement no Java imediatamente termina o loop, e o controle do programa é transferido para a próxima sentença após o loop.

O break statement é quase sempre usado com sentenças de decisão (Java if ... else statementusados juntos.

Este é o sintaxe do break statement em Java:

break;

Como o break statement funciona?

Gráfico de fluxo do Java break statement

Exemplo1:Java break statement

class Test {
    public static void main(String[] args) {
      
        // Loop for
        for (int i = 1; i <= 10; ++i) {
            //Se o valor de i for5então o loop termina 
            if (i == 5) {
                break;
            }      
            System.out.println(i);
        }   
    }
}

Output:

1
2
3
4

No programa acima, usamos um loop for para imprimir o valor de i em cada iteração. Para entender como o loop for funciona, acesseJava for loopAtenção, aqui estão as seguintes sentenças:

if (i == 5) {
    break;
}

Isso significa que quando o valor de i é igual a5quando, a iteração termina. Portanto, obtemos um valor menor que5O valor de saída.

Exemplo2:Java break statement

O programa a seguir calcula a soma dos números digitados pelo usuário até que ele insira um número negativo.

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

import java.util.Scanner;
class UserInputSum {
    public static void main(String[] args) {
      
        Double number, soma = 0.0;
        //Criar objeto Scanner
        Scanner input = new Scanner(System.in);
      
        while (true) {
            System.out.print("Insira um número: ");
            //Aceitar duas entradas do usuário
            number = input.nextDouble();
         
            //Se number for negativo, o loop termina
            if (number < 0.0) {
                break;
            }
         
           soma += number;
        }
        System.out.println("Soma = " + soma);
    }
}

Output:

Insira um número: 3.2
Insira um número: 5
Insira um número: 2.3
Insira um número: 0
Insira um número: -4.5
Soma =  10.5

No programa acima, a expressão de teste do loop while sempre é true. Aqui, note essa linha,

if (number < 0.0) {
    break;
}

Isso significa que quando o usuário entra com um número negativo, o loop while termina.

Interrupções no Java e loops aninhados

ParaLoops aninhados,a instrução break termina o loop mais interno.

Diagrama de fluxo da instrução break com loops aninhados

Aqui, a instrução break termina o loop while mais interno e o controle salta para o loop externo.

Instrução break com etiqueta

Até agora, já usamos a instrução break sem etiqueta. Ela termina o loop mais interno e as instruções switch. Mas, no Java, há outro formato de instrução break, chamada de break com etiqueta.

Também podemos usar a instrução break com etiqueta para encerrar o loop mais externo.

Diagrama de fluxo da instrução break com etiqueta no Java

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

Aqui, a instrução break termina a instrução com etiqueta (ou loop externo). Em seguida, o programa salta para a instrução após a etiqueta especificada.

Este é outro exemplo:

while (testExpression) {
   // Código
   second:
   while (testExpression) {
      // Código
      while(testExpression) {
         // Código
         break second;
      }
   }
   //O controle salta para aqui
}

No exemplo acima, quando a instrução break second; é executada; após a execução, o loop while marcado como Second termina. E, o controle do programa é transferido para essa instrução após o segundo loop while.

Exemplo3:instrução break com etiqueta

class LabeledBreak {
    public static void main(String[] args) {
   
        //Loop marked as first 
        first:
        for( int i = 1; i < 5; i++) {
            //Loop marked as second
            second:
            for(int j = 1; j < 3; j ++ ) {
                System.out.println("i = " + i + "; j = " +j);
             
                //A instrução break termina o primeiro loop for
                if ( i == 2)
                    break first;
            }
        }
    }
}

Output:

i = 1; j = 1
i = 1; j = 2
i = 2; j = 1

No exemplo acima, a instrução labeled break é usada para encerrar o loop marcado como first. Isso é,

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

In this case, if we change 'break first;' to 'break second;' the behavior of the program will be different. In this case, the for loop marked as second will be terminated. For example,}}

class LabeledBreak {
    public static void main(String[] args) {
      
        //Loop marked as first
        first:
        for( int i = 1; i < 5; i++) {
            //Loop marked as second
            second:
            for(int j = 1; j < 3; j ++ ) {
                System.out.println("i = " + i + "; j = " +j);
       
                //break statement terminates the loop marked as second  
                if ( i == 2)
                    break second;
            }
        }
    }
}

Output:

i = 1; j = 1
i = 1; j = 2
i = 2; j = 1
i = 3; j = 1
i = 3; j = 2
i = 4; j = 1
i = 4; j = 2

Notebreak statements are also used to terminate the case of a switch statement. For more information, please visitSentenças switch Java.