int v = 0;
for (v; v<2; v++) {
...
}
Por que isso não é permitido em Java?
Por que temos que declarar variável v
na inicialização do loop for? Eu sei que não é uma declaração se eu fizer assim, mas por que o Java não permite o que foi dito acima?
for(;;)
v
não é permitido porque não é uma declaração: é a mesma razão pela qual você não pode escreverv;
sozinho em outro lugar.for
loop aprimorado .Respostas:
Se
v
for declarado antes do loop, você deve deixar a primeira parte da instrução for vazia:Não há sentido em escrever
v;
.fonte
Sua declaração de loop é válida se você remover o estranho
v
na declaração (assumindo quev
foi declarado anteriormente):Mude para
for(; v < 2; v++)
Todos os três modificadores no
for
loop tradicional são opcionais em Java.Exemplos de alternativas:
Abaixo está o mesmo que um
while (true)
loop:Adicionando incrementos extras:
Adicionando condições extras para finalizar o loop:
Declarando várias da mesma variável de tipo:
E, obviamente, você pode misturar e combinar com qualquer um deles, deixando completamente de fora o que quiser.
fonte
De acordo com o java doc
Significa que você pode criar um
for
loop e deixar alguns de 3 expr em branco. Uma das opções é declararint v
antes do loop:fonte
Você não precisa declarar uma variável no
ForInit
.Como outros já apontaram, você pode simplesmente omitir o
ForInit
; mas você também pode usar uma lista de expressões de instrução lá.Por exemplo, você pode criar novas instâncias de classe, chamar métodos e atribuir / incrementar / diminuir variáveis:
(Este exemplo é absurdo, mas legal)
No entanto, você não pode misturar essas expressões de instrução com declarações de variáveis locais.
fonte
Você não precisa dele para um
for
loop aprimorado .fonte
int w = 0;
na TV;
para (v; v <2; v ++) {
} você declarou v antes do loop, mas usou novamente sem nenhuma inicialização.
se você usar w que já foi declarado e inicializado anteriormente, não haverá problemas. como no código abaixo,
para (; w <2; w ++) {
}
fonte