Почему переменная должна быть объявлена в инициализации цикла for?
11
int v =0;for(v; v<2; v++){...}
Почему это не разрешено в Java?
Почему мы должны объявлять переменную vв инициализации цикла for? Я знаю, что это не утверждение, если я делаю это так, но почему Java не позволяет выше?
for(;;)
v
не допускается, потому что это не утверждение: это та же самая причина, по которой вы не можете писатьv;
в другом месте.for
цикла.Ответы:
Если
v
объявлено до цикла, вы должны оставить первую часть инструкции for пустой:Нет смысла просто писать
v;
.источник
Ваше объявление цикла является действительным, если вы удалите постороннее
v
в объявлении (при условииv
было объявлено заранее):Измените это на
for(; v < 2; v++)
Все три модификатора в традиционном
for
цикле являются дополнительными в Java.Примеры альтернатив:
Ниже так же, как
while (true)
цикл:Добавление дополнительных приращений:
Добавление дополнительных условий для завершения цикла:
Объявление нескольких переменных одного типа:
И, очевидно, вы можете смешивать и сочетать любые из них, как хотите, полностью исключая те, которые вы хотите.
источник
Согласно документу Java
Означает, что вы можете создать
for
цикл и оставить некоторые из 3 expr пустыми. Один из вариантов - объявитьint v
перед циклом:источник
Вам не нужно объявлять переменную в
ForInit
.Как уже отмечали другие, вы можете просто опустить
ForInit
; но вы также можете использовать список выражений операторов там.Например, вы можете создавать новые экземпляры классов, вызывать методы и назначать / увеличивать / уменьшать переменные:
(Этот пример бессмысленный, но законный)
Однако вы не можете смешивать эти выражения операторов с объявлениями локальных переменных.
источник
Вам не нужно это для расширенного
for
цикла.источник
int w = 0;
на телевидении;
для (v; v <2; v ++) {
} вы объявили v перед циклом, но вы снова использовали без какой-либо инициализации.
если вы используете w, который уже объявлен и инициализирован ранее, то проблем не будет. как в приведенном ниже коде,
для (; ш <2; ш ++) {
}
источник