我正在编写以下代码:
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
我不明白背后的原因。任何解释将不胜感激。感谢
答案 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)
循环不像函数一样被隔离。