为了账号安全,请及时绑定邮箱和手机立即绑定

【JAVA小白】问关于变量命名冲突的问题。两个i,一个在for循环里面一个在for循环外面。

【JAVA小白】问关于变量命名冲突的问题。两个i,一个在for循环里面一个在for循环外面。

守着星空守着你 2019-03-12 19:15:08
第一段代码: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贡献1844条经验 获得超8个赞

这个问题是变量的作用域问题

查看完整回答
反对 回复 2019-03-12
?
湖上湖

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);
                
            }
        }
    }


查看完整回答
反对 回复 2019-03-12
  • 2 回答
  • 0 关注
  • 1216 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信