我正在尝试编译以下代码:
class Looping {
public static void main(String ar[]) {
long j;
for (int i = 0, j = 3; i <= 10; i++, j++) {
System.out.println(j);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我收到以下编译错误:
j已在main(java.lang.String [])中定义
错误发生在for循环的行.这是怎么造成的,我该如何解决?
您实际上是以这种方式声明两个j变量.你的解决方案是不在循环中重新声明j,而是在循环之前将其声明为一次,或者在for循环初始条件中将其声明为一次(就像你正在做的那样).例如,您可以尝试:
long j = 3;
for (int i = 0; i <= 10; i++, j++) {
System.out.println(j);
}
Run Code Online (Sandbox Code Playgroud)
当你写:
long j;
for(int i=0, j=3;i<=10;i++,j++)
{
System.out.println(j);
}
Run Code Online (Sandbox Code Playgroud)
这基本上相当于:
long j;
int i = 0, j = 3;
while (i <= 10)
{
System.out.println(j);
i++, j++;
}
Run Code Online (Sandbox Code Playgroud)
实质上,您正在尝试创建一个循环本地的新j类型变量int.已经有一个名为jtype 的变量long定义,因此错误.您可以省略long j;声明,或将其更改为long j = 3;在循环开始之前初始化它.