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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

[Java] 纯文本查看 复制代码

上午 12:19:26
代保禄 2016/8/11 星期四 上午 12:19:26
class Test1 {
	public static void main(String[] args) {
		int [] arr =  new int []{1,2,3,4,5,6,7,8,9};
		int x =arr1(arr);
		System.out.print(x);
	}
	public static int arr1(int[] arr){
		for (int i =0;i<arr.length ;i++ ) {
			int j = arr[i];	
		}  
		return j;
	} 
}

6 个回复

倒序浏览
你 i,j都是在for循环内定义的,出了for,就失效。你可以在for前定义变量并初始化。

评分

参与人数 1黑马币 +3 收起 理由
r1503882525 + 3 赞一个!

查看全部评分

回复 使用道具 举报
楼上正解,出了for循环,i和j就被释放掉了。建议在for循环内做个输出语句,同时将输出类型int改为void。下面给出对你的代码的修改结果
[Java] 纯文本查看 复制代码
class Test1 {
    public static void main(String[] args) {
        int [] arr =  new int []{1,2,3,4,5,6,7,8,9};
        arr1(arr);
    }
    public static void arr1(int[] arr){
        for (int i =0;i<arr.length ;i++ ) {
            System.out.print(arr[i] + " ");
        }  
	}
}


评分

参与人数 1黑马币 +3 收起 理由
r1503882525 + 3 回答认真,赞一个

查看全部评分

回复 使用道具 举报
//这是关于局部变量方面的问题,int类型不赋值默认为0,所以我把楼主的代码改进了一下
public class Test1 {
        public static void main(String[] args) {
                int [] arr =  new int []{1,2,3,4,5,6,7,8,9};
                int x =arr1(arr);
                System.out.print(x);
        }
        public static int arr1(int[] arr){
                int j=0;
                for (int i =0;i<arr.length ;i++ ) {
                        j = arr[i];
                }  
                return j;
        }
}

评分

参与人数 1黑马币 +2 收起 理由
r1503882525 + 2 回答认真,赞一个

查看全部评分

回复 使用道具 举报
695212308 发表于 2016-8-11 22:29
//这是关于局部变量方面的问题,int类型不赋值默认为0,所以我把楼主的代码改进了一下
public class Test1  ...

亲,你这个代码不对。我跑了一下只输出了9。其实你的for循环最终只return一次j,值为8。
回复 使用道具 举报
peterqiu007 发表于 2016-8-12 11:36
亲,你这个代码不对。我跑了一下只输出了9。其实你的for循环最终只return一次j,值为8。 ...

是的,我是按照你的代码更改了下,你是要输出0到9么?
public class Test1 {
        public static void main(String[] args) {
                int [] arr =  new int []{1,2,3,4,5,6,7,8,9};
                arr1(arr);
              
        }
        public static void arr1(int[] arr){
               
                for (int i =0;i<arr.length ;i++ ) {
                        System.out.println(arr);
                }  
               
        }
}
这样是输出1-9
回复 使用道具 举报
本帖最后由 peterqiu007 于 2016-8-12 18:56 编辑
695212308 发表于 2016-8-12 18:18
是的,我是按照你的代码更改了下,你是要输出0到9么?
public class Test1 {
        public static void ...

我不是楼主啦,但是看得出楼主的代码功能是想遍历数组的
你的上一条没有遍历功能,所以我指出来了不过。。。。。。
你的第二条还是不准确啊,System.out.println(arr);不对
应该是System.out.println(arr【i】;(怎么这个回复会吃掉英文标点的中括号)
不然就是把数组的存储位置遍历一遍了

莫非你的中括号也被这个回复吃掉了?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马