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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 井瑞涛 中级黑马   /  2013-4-13 14:39  /  2046 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 井瑞涛 于 2013-4-20 22:07 编辑

class Demo2 {
        public static void main(String[] args)
        {
                int[] arr={34,56,7,8,9,};
                System.out.println(getMax(arr));
        }
        public static int getMax(int[]arr)
        {               
                                int max=0;//在这里int max=0;和int max=arr[0];都可以正常运行,为什么有什么区别吗?求解一下                     
                   for (int x=1;x<arr.length;x++)
                        {
                                if (arr[x]>max)
                                {
                                        max=arr[x];
                                }
                                       
                        }
                        return max;
        }
}

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

10 个回复

倒序浏览
int max=0; 定义一个整形变量max并设置初始值为0; (max现在跟arr没有关系)

int max=arr[0]; 获取接受的数组并把数组的第一个元素的值付给变量max(max现在的值是arr数组的第一个元素)

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 HM邱刚权 于 2013-4-13 15:07 编辑

区别大了!
int max=0;是直接给max赋值  让他等于0 ;
max=arr[0];  是把 arr数组里面[0]的的值也就是数组里面第一个值赋值给他!
虽然都是赋值但是   arr数组里面的值灵活性更大用起来也当然不同!比如
int max=0  你在外面调用他 他的值可以直接在这里修改
但是max=arr[0];  这个必须在数组里面修改!

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
区别挺大的。其实1,2楼说得差不多了。
max就是一个介质,你如果把  max = 0;这样定义的话,如果数组中的都为负数的话  就比较不出最大值了。

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
一二楼正解,这里就不多说了
回复 使用道具 举报
他们之间的区别是很大

但是对于你这里的程序,你的那个max局部变量初始值为0或者arr里面的任何一个值,其结果都是一样,

紧紧针对于你这个程序.
回复 使用道具 举报
对于int max=0;和int max=arr[0];在执行getMax()有很大的区别,因为for循环中,你是从x=1开始判断的,在max=0时arr[0]的大小就不会被比较
回复 使用道具 举报
首先我想先说一下int是可以有负数的,
如果你定义的数组里面没有正数,全都是小于0的,例如int[] arr={-1,-2,-3,-4,-5};
而你在外面定义了一个int max=0;
你的for循环里面和max比较都是比0小的数,那样0岂不不就是最大值了?
但是在我们定义的数组里面-1是最大值,所以与事实不符。
为什么用arr[0]呢?
因为arr[0]表示的是数组的第一个元素,然后拿这第一个元素去和数组的每个元素去进行比较,
只有那样比较出来的才是数组中的最大值

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
这道题当时我貌似使用了排序Arrays.sort(..),打印最后一位,即最大值,{:soso_e113:}
回复 使用道具 举报
当数组里的值都是负数时,令max=0,是不对的,用数组arr解才可以得到正确结果。

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
定义的时候尽量定义成数组的元素的值
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马