Article image
Flávio Carvalho
Flávio Carvalho12/01/2023 19:48
Compartilhe

Pouca gente sabe disso (você vai se surpreender com o For)

  • #Java

Recentemente vi muitos conteúdos sobre estruturas de repetição no fórum, mas nenhum mostrou os detalhes que vou exibir aqui sobre o FOR.

Sabia que todos os parâmetros do for são opcionais? Veja os exemplos.

Sem nenhum parâmetro gera um laço infinito

for(;;){
 System.out.println("Laço infinito");
}

Sem inicializador. Inicia a variável i fora dos parâmetros, nesse caso o escopo dela fica fora dos limites do for.

int i = 0;
for(;i < 3;i++){
 System.out.println("Laço finito");
}

Somente com inicializador

for(int i = 0;;){
 System.out.println("Laço infinito");
}

Sem condição de parada

for(int i = 0;;i++){
 System.out.println("Laço infinito");
}

Somente com condição de parada

for(;1==1;){
 System.out.println("Laço infinito");
}

Sem operador de incremento

for(int i = 0;i < 3;){
 System.out.println("Laço infinito");
}

Sabia que eu posso ter condições compostas?

int y = 5;
for(int x = 0;x < 4 && x < y; x++){
System.out.println("Laço finito");
}

Também posso ter outras instruções após o incremento, é só separar com virgula

int y = 5;
String valor = "valor";
for(int x = 0;x < 4 && x < y; x++, y--, valor = "x: "+x+" y: "+y){
System.out.println("Laço finito: "+valor);
}

É difícil ver esses casos, mas não impossível.

Particularmente não recomendo, prejudica muito a leitura. Além disso, é bem mais fácil de errar e se confundir.

Compartilhe
Comentários (4)
Marcos Rezende
Marcos Rezende - 13/01/2023 08:00

Que top hein! Não sabia dessas variações

CR

Cauane Reis - 13/01/2023 00:09

cara muito legal, eu tava tentando lembrar como iniciava a variável sem esta dentro do for, mas ver outras possibilidades foi de mais. Obrigada 🤝

Daniel Neves
Daniel Neves - 12/01/2023 21:35

Essa do laço infinito eu poderia jurar que daria erro ! ahahaha

Hermes Silva
Hermes Silva - 12/01/2023 20:33

Interessante!

Voto up.