A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 7jianpan 中级黑马   /  2014-7-23 22:55  /  1198 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int[][] arr={{3,5,1,7},{2,3,8},{6,1,8,2}};
               
                for (int x=0;x<arr.length ;x++ )
                {
                        for (int y=0;y<arr[x].length;y++ )
                        {
                                int sum=sum+arr[x][y];
                        }
                }
                System.out.println("sum="+sum);

为什么这样编译就显示找不到sum
int[][] arr={{3,5,1,7},{2,3,8},{6,1,8,2}};
int sum=0;
                for (int x=0;x<arr.length ;x++ )
                {
                        for (int y=0;y<arr[x].length;y++ )
                        {
                                 sum=sum+arr[x][y];
                        }
                }
                System.out.println("sum="+sum);
这样就可以

6 个回复

倒序浏览
sum在里边的for循环里面定义的,作用范围只能在这个for 的{}里面,在外面不能使用
回复 使用道具 举报
第一个中 你将sum定义在了for循环代码快内部,这时sum的作用域就是for循环,循环外边是访问不到的。
第二个的作用域是整个函数 就可以编译通过了
回复 使用道具 举报
张盼 发表于 2014-7-23 22:58
sum在里边的for循环里面定义的,作用范围只能在这个for 的{}里面,在外面不能使用 ...

哦,对,外面还有个打印语句,谢谢啦:handshake
回复 使用道具 举报
space2007 发表于 2014-7-23 23:01
第一个中 你将sum定义在了for循环代码快内部,这时sum的作用域就是for循环,循环外边是访问不到的。
第二个 ...

明白了,谢谢~:handshake
回复 使用道具 举报
int sum=sum+arr[x][y];
这一句要求定义一个 sum ,值是sum+arr[x][y],而这一句之前 sum 没有定义,所以“找不到(运算需要的)sum”
回复 使用道具 举报
局部变量的作用范围。。。。。。。。。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马