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.