Clique sobre os tópicos listados abaixo para navegar até o conteúdo desejado.

  1. Comando for
  2. Comando foreach
  3. Comando while
  4. Comando do-while
  5. Comando break
  6. Comando continue
  7. Loop infinito
  8. Entender comando aninhados

A linguagem Java fornece os comandos de repetição for, while, do-while e forech. Nesta parte do tutorial vamos aprender esses comandos.

Os comandos de repetição bem como o seus funcionamentos já foram discutidos em Portugol: Comandos de Repetição sendo a leitura recomendada.

Para fazermos executar trechos de forma repetida e quando sabemos a quantidade de vezes, utilizamos o comando for que possui a sintaxe:

Fig. 1: Comando for
Sintaxe
for(inicialização ; condição ; atualização)
{
  //seu codigo aqui
}
Onde
inicialização: bloco para iniciar variável.
condição: condição para que a repetição seja executada.
atualização: atualização de variável utilizada em inicialização.
Exemplo 1
public class Main
{
	public static void main(String[] args) 
	{
	    int contador;
	    
        for (contador = 0 ; contador < 5 ; contador++){
        	System.out.println(contador);
        }
	}
}
Saída
0
1
2
3
4

Tanto a inicialização quanto condição e atualização discutidos anteriormente podem conter mais de uma declaração ou expressão em seus respectivos blocos.

Exemplo 2
public class Main
{
	public static void main(String[] args) 
	{
	    int i,j;
	    
        for(i = 0,j=0; i < 10 || j <10 ; i++,j++){
        	//omitido
        }
	}
}
Saída
-

Java suporta a declaração de variável dentro do bloco inicialização como mostrado no exemplo abaixo:

Exemplo 3
public class Main
{
	public static void main(String[] args) 
	{
        for (int contador = 0 ; contador < 5 ; contador++){
        	System.out.println(contador);
        }
	}
}
Saída
0
1
2
3
4

Semelhante a C++, Java fornece o comando de repetição foreach que irá percorrer todos os elementos de uma coleção. A sintaxe desse comando é mostrado logo abaixo:

Fig. 2: Comando foreach
Sintaxe
for (tipo_dado nome_variavel : nome_colecao)
{
  //seu codigo aqui
}
Onde
tipo_dado: tipo de dado do elemento.
nome_colecao: objeto ou coleção que contem elementos do tipo tipo_dado.

Apenas tipos de dados que utilizam iteradores podem ser utilizados com o comando foreach. Como exemplo, vetores, coleções e semelhantes.

Exemplo 4
public class Main
{
	public static void main(String[] args) 
	{
	    
	    char[] vchar  = { 'c','a','f','e','b','a','b','e'};
	    
        for (char letra : vchar) {
            System.out.println(letra);
        }
	}
}
Saída
c
a
f
e
b
a
b
e

O comando while, é utilizado quando precisamos executar várias repetições e não sabemos quantas vezes serão. Porém, como se trata de um comando de repetição também pode ser usado como for.

Como se trata de um comando de repetição o comando while também pode ser usado como for.

Fig. 3: Comando while
Sintaxe
while(condicao)
{
  //seu código aqui
}
Exemplo 5
public class Main
{
	public static void main(String[] args) 
	{
	    
	    char[] vchar  = { 'c','a','f','e'};
	    int i=0;
        
        while( i < 4 ){
            System.out.println(vchar[i]);
            i++;
        }
	}
}
Saída
c
a
f
e

O comando do-while executa o trecho de código que está contido em seu corpo e posteriormente verifica a condição para decidir se deve ou não continuar realizando as repetições.

Fig. 4: Comando do-while
Sintaxe
do
{
   //trecho de código executado em loop
}
while(condicao);
Exemplo 6
public class Main
{
	public static void main(String[] args) 
	{
	    
	    char[] vchar  = { 'c','a','f','e'};
	    int i=0;
        
        do{
            System.out.println(vchar[i]);
            i++;            
        }
        while( i < 4 );
	}
}
Saída
0
1
2

A linguagem de programação Java, assim como C e C++, fornece os comandos de parada break e continue. Nesta parte do tutorial vamos aprender esses comandos.

Para parar a execução de um comando de repetição como for, while e do while, Java possui o comando break:

Sintaxe
break;

Quando a linha de código contendo break é executada, o fluxo de execução do comando de repetição é parado e o fluxo continua após o fim do bloco do comando.

Exemplo 7
public class Main
{
	public static void main(String[] args) 
	{
	    
        for (int contador = 0 ; contador < 5 ; contador++){
            
        	System.out.println(contador);
        	
        	if (contador == 3)
        	    break;
        }
        //continua aqui após break
	}
}
Saída
0
1
2
3

O comando break só pode ser utilizado dentro dos comandos for, while, do-while e switch.

Para declarar um loop infinito em Java, utilizamos os comandos while e do-while vistos acima. As condições de validação recebem o valor ou expressão que sempre irá retornar true.

Exemplo 8: while
import java.util.Scanner;

public class Main
{
	public static void main(String[] args) {
		
		//Scanner sc = new Scanner(System.in);
		
        while(true)
        {
            Scanner sc = new Scanner(System.in);
            
            System.out.print("Digite uma palavra:");
            String entrada = sc.nextLine();
            System.out.println("string digitada: " + entrada);

            if (entrada.equals("quit")){
                break;
            }
        }
	}
}
Saída
Digite uma palavra:teste
string digitada: teste
Digite uma palavra:quit
string digitada: quit
Exemplo 8: do-while
import java.util.Scanner;

public class Main
{
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		String entrada = new String();
		
        do
        {
            System.out.print("Digite uma palavra:");
            entrada = sc.nextLine();
            System.out.println("string digitada: " + entrada);

            if (entrada.equals("quit")){
                break;
            }
        }
        while(true);
	}
}
Saída
Digite uma palavra:teste
string digitada: teste
Digite uma palavra:quit
string digitada: quit

Diferente dos comandos while e do-while, um loop infinito utilizando o comando for não precisa ter seus campos preenchidos.

Exemplo 9: for
import java.util.Scanner;

public class Main
{
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		String entrada = new String();
		
        for(;;) //loop infinito
        {
            System.out.print("Digite uma palavra:");
            entrada = sc.nextLine();
            System.out.println("string digitada: " + entrada);

            if (entrada.equals("quit")){
                break;
            }
        }
	}
}
Saída
Digite uma palavra:teste
string digitada: teste
Digite uma palavra:quit
string digitada: quit

Diferente de C e C++, Java não possui suporte ao comando goto que nos permite declarar loops infinitos utilizando labels.

  1. 28/11/2025 - revisão 4 - Adição: loop infinito
  2. 23/07/2025 - revisão 3 - Correções pontuais
  3. 23/09/2024 - revisão 2 - remoção de import em exemplos; ajustes pontuais
  4. 06/02/2024 - revisão 1 - correção em navegação e erros gramaticais
  5. 04/09/2023 - versão inicial