为什么外部for循环变量不能用于内部for循环

时间:2016-05-05 09:07:29

标签: java for-loop

我正在编写以下代码:

int j =0;
for( j=0; j< 10;j++){
  System.out.println("Printing outer for loop :" +j);
  for(j; j < 8; j++)
  {
     System.out.println("Printing inner for loop" + j);
  }
}

Eclipse向我显示以下错误:

Syntax error on token "j", ++ expected after this token

我不明白背后的原因。任何解释将不胜感激。感谢

4 个答案:

答案 0 :(得分:2)

j;不是有效语句,这就是你的内部循环不能编译的原因。你不需要在那里放一个语句,你可以在内循环中将“第一部分”留空:

int j =0;
for( j=0; j< 10;j++){
    System.out.println("Printing outer for loop :" +j);
    for(; j < 8; j++)
    {
        System.out.println("Printing inner for loop" + j);
    }
}

答案 1 :(得分:2)

正如JLS中所定义的,for循环声明ForInit的第一个“部分”是list of statement expressions or a local variable declaration; j不是语句表达式(赋值;前/后递增/递减;方法调用;新类初始化)或局部变量声明,因此语法无效。

根据您的目的,您可以省略它:

for (; j < 8; j++)

请注意for循环的所有三个“部分”都是可选的:例如,这很好:

for (;;) {
}

(这只是一个无限循环)

答案 2 :(得分:0)

for循环的第一个参数是初始化语句 - https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html

for (initialisation; termination;
     increment) {
    statement(s)
}
  

for(j; j <8; j ++)

请初始化上面for循环中的第一个语句。

答案 3 :(得分:0)

循环不像函数一样被隔离。