第一段代码:public class HelloWorld {
public static void main(String[] args) {
int i = 0; //这里定义了i
for(int i = 0 ; i < 10 ; i++) { // 这里也有一个i,系统提示,命名重复,请修改
System.out.println(i);
}
}
}第一段代码有两个i,一个在for外面,一个在for里面,系统提示命名冲突第二段代码:public class HelloWorld {
public static void main(String[] args) {
for(int i = 0; i < 10 ; i++) {
System.out.println(i);
}
for(int i = 0; i < 10 ; i++) {
System.out.println(i);
}
}
}第二段代码有两个并列的for循环,都有一个变量i,但是两个不会命名冲突。我有两个问题:第一,第一段代码和第二段代码当中,两个i到底哪个是局部变量,哪个是全局变量?第二,为什么第一段代码i名字冲突,第二段代码i名字不冲突?
2 回答
湖上湖
TA贡献2003条经验 获得超2个赞
第一端代码中 int i = 0;
的作用域是整个 main
函数中,而 for
循环在 main
函数之中所以系统提示命名冲突;
第二段代码中的两个i的作用域分别在两个for
循环之中,所以不冲突;
public class HelloWorld { int hello=0; //成员变量,作用域整个类 public static void main(String[] args) { int j = 0; //局部变量,作用域main代码块中 for(int i = 0 ; i < 10 ; i++) { // 局部变量,作用域for代码块中 System.out.println(i); } } }
添加回答
举报
0/150
提交
取消