java执行错误

来源:百度知道 编辑:UC知道 时间:2024/06/30 05:14:15
for (int i=0;i<10;i++)
i+=1;
System.out.print(i);

这个语句为什么执行时候说:“找不到符号变量i"?

楼上说的很好,补充几点

for语句,如果循环体只有一句,可以不加{}。但推荐养成好习惯。即便是循环体只有一句话也要加上{}

变量作用域通俗的说是它的有效范围。用马士兵老师的话说是:出了大括号就没有人认识它了。即出了大括号为变量分配的内存空间就被收回。

for循环的变量定义虽然在()里。但是是可以放在大括号里的。我们就认为它是在大括号里定义的。

楼主的代码实际上是这样的
for (int i=0;i<10;i++)
{i+=1;}
System.out.print(i);

也就是说是,先让i自增10次。然后i就从内存消失掉。但是在这个时候,突然要让他打印一个i出来。虚拟机莫名奇妙,就给出了找不到符号的提示

i是局部变量,加个{}
for (int i=0;i<10;i++)
{i+=1;
System.out.print(i);
}

作用域的问题;
关键看你写在什么地方,若写在main()中,可修改成这样的:
int i;
for(i=0;i<10;i++)
i+=1;
System.out.print(i);
若单独写在一个方法中则没有错误,我把代码写在下面:
public class Test {

public void plus(){
for(int i=0;i<10;i++){
i+=1;
System.out.println(i);
}

}
public static void main(String[] args) {
new Test().plus();
}
}

int i=0;
for(i=0;i<10;i++){
i+=1;
System.out.print(i);
}
好好看看书上的基础

这是你完整的代码吗?语