java执行错误
来源:百度知道 编辑:UC知道 时间:2024/06/30 05:14:15
for (int i=0;i<10;i++)
i+=1;
System.out.print(i);
这个语句为什么执行时候说:“找不到符号变量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);
}
好好看看书上的基础
这是你完整的代码吗?语