int v = 0;
for (v; v<2; v++) {
...
}
¿Por qué esto no está permitido en Java?
¿Por qué tenemos que declarar variables v
en 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(;;)
v
no está permitido porque no es una declaración: es la misma razón por la que no puedes escribirv;
solo en otro lugar.for
bucle mejorado .Respuestas:
Si
v
se 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
v
en la declaración (suponiendo quev
se haya declarado de antemano):Cámbialo a
for(; v < 2; v++)
Los tres modificadores en el
for
bucle 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
for
bucle y dejar algunos de 3 expr vacíos. Una de las opciones es declararint v
antes 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
for
bucle 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