int v = 0;
for (v; v<2; v++) {
...
}
¿Por qué esto no está permitido en Java?
¿Por qué tenemos que declarar variables ven la inicialización del ciclo for? Sé que no es una declaración si lo hago así, pero ¿por qué Java no permite lo anterior?

for(;;)vno está permitido porque no es una declaración: es la misma razón por la que no puedes escribirv;solo en otro lugar.forbucle mejorado .Respuestas:
Si
vse declara antes del ciclo, debe dejar vacía la primera parte de la instrucción for:No tiene sentido solo escribir
v;.fuente
Su declaración de bucle es válida si elimina lo extraño
ven la declaración (suponiendo quevse haya declarado de antemano):Cámbialo a
for(; v < 2; v++)Los tres modificadores en el
forbucle tradicional son opcionales en Java.Ejemplos de alternativas:
A continuación es lo mismo que un
while (true)bucle:Agregar incrementos adicionales:
Agregar condiciones adicionales para terminar el ciclo:
Declarando múltiplo de la misma variable de tipo:
Y, obviamente, puede mezclar y combinar cualquiera de estos como desee, dejando completamente fuera los que desee.
fuente
De acuerdo con el documento de Java
Significa que podría crear un
forbucle y dejar algunos de 3 expr vacíos. Una de las opciones es declararint vantes del bucle:fuente
No tiene que declarar una variable en el
ForInit.Como otros han señalado, simplemente puede omitir el
ForInit; pero también puede usar una lista de expresiones de declaración allí.Por ejemplo, puede crear nuevas instancias de clase, invocar métodos y asignar / aumentar / disminuir variables:
(Este ejemplo no tiene sentido, pero es legal)
Sin embargo, no puede mezclar estas expresiones de declaración con declaraciones de variables locales.
fuente
No lo necesita para un
forbucle mejorado .fuente
int w = 0;
En televisión;
para (v; v <2; v ++) {
} has declarado v antes del ciclo pero nuevamente lo usaste sin ninguna inicialización.
si usa w que ya se declaró e inicializó antes, entonces no habrá problemas, como el código siguiente,
para (; w <2; w ++) {
}
fuente