Java 为什么必须在for循环初始化中声明变量? intv=0; for(v;v
如果在循环之前声明了Java 为什么必须在for循环初始化中声明变量? intv=0; for(v;v,java,Java,如果在循环之前声明了v,则应该将for语句的第一部分留空: int v = 0; for (; v < 2; v++) { ... } intv=0; 对于(;v
v
,则应该将for语句的第一部分留空:
int v = 0;
for (; v < 2; v++) {
...
}
intv=0;
对于(;v<2;v++){
...
}
仅仅根据规则写v;
是没有意义的
for语句的一般形式可以表示为:
for (initialization; termination; increment) {
statement(s)
}
for循环的三个表达式是可选的
这意味着您可以为循环创建,并将3个表达式中的一些保留为空。其中一个选项是在循环之前声明int v
:
int v = 0;
for(; v<2; v++)
intv=0;
对于(;v如果在声明中删除无关的v
(假设v
是事先声明的),则循环声明有效:
将(;v<2;v++)更改为
传统的for
循环中的所有三个修饰符在Java中都是可选的
备选方案示例:
以下与while(true)
循环相同:
for (;;) {
}
增加额外增量:
int j = 0;
for (int k = 0; k < 10; k++, j++) {
}
intj=0;
对于(int k=0;k<10;k++,j++){
}
添加附加条件以终止循环:
int j = 0;
for (int k = 0; k < 10 || j < 10; k++, j++) {
}
intj=0;
对于(int k=0;k<10 | | j<10;k++,j++){
}
声明同一类型变量的多个:
for (int k = 0, j = 0; k < 10 || j < 10; k++, j++) {
}
for(int k=0,j=0;k<10 | | j<10;k++,j++){
}
显然,您可以根据需要混合和匹配其中的任何一个,完全忽略您想要的任何一个。您不必在ForInit
中声明变量
正如其他人所指出的,您可以简单地省略ForInit
;但也可以在那里使用语句表达式列表
例如,您可以创建新的类实例、调用方法和分配/递增/递减变量:
int v;
for (new String(), "".toString(), v = 0, v++;;);
(这个例子毫无意义,但却是合法的)
但是,不能将这些语句表达式与局部变量声明混合使用。intw=0
INTV
对于(v;vwe don;for(;)
v
是不允许的,因为它不是一个语句:这与您不能在其他地方自己编写v;
的原因相同。您需要一个增强的for
循环。