黑马程序员技术交流社区

标题: 理解不深,求救大神 [打印本页]

作者: 单先生    时间: 2016-8-22 22:46
标题: 理解不深,求救大神
class Shuzu {
        public static void main(String[] args) {
                int [] arr = new int [] {1,2,3,4,5,6,7};
                int max = getMax (arr);
                System.out.println(max);
        }
        public static int getMax(int [] arr){
                int max = arr[0];
                for (int i = 0;i < arr.length ;i++ ) {
                        if (max < arr[i]) {
                                max = arr[i];
                        }
                        System.out.println(max);
                }
                return max;
        }
}



为什么会遍历一次数组呢?
作者: 单先生    时间: 2016-8-22 22:47
感觉主要还是对数组理解不深啊
作者: luliang    时间: 2016-8-22 23:19
写的时候把 每一步的注释加上  就会加深理解

作者: 马蚁牙黑    时间: 2016-8-23 00:13
得到每一个数组元素中的值,要不然怎么比.?
作者: qetu001212    时间: 2016-8-23 08:11
因为你getMax()中有输出语句,而你的数组又是升序排列,所以每次的最大值都会变化,看起来就像是遍历数组了。。。实际并不是,只是把每次的最大值输出而已。。。
作者: LLL_LLL    时间: 2016-8-23 09:18
找到数组中最大的值,当然要遍历数组了。假设第一个是最大的,然后依次比较,如果有比它大的,就存储下来,直到最后一个
作者: 坚持努力wbj    时间: 2016-8-23 09:26
把你最下边的那个System.out.println(max);删了就好了,建议你人工走一下程序,你不是对数组理解不够,而是对程序如何走的概念不足,你亦可以自己推演一下它的每一步,然后就理解了
作者: 阿卜    时间: 2016-8-23 12:20
for (int i = 0;i < arr.length ;i++ ) {
                        if (max < arr[i]) {
                                max = arr[i];
                        }
                        System.out.println(max);
                }
这段代码
如果你把数组改成7654321就会打印出7个7了
作者: itcoder    时间: 2016-8-23 21:35
顶顶顶顶顶顶顶顶顶顶顶
作者: 爱你一万年    时间: 2016-8-23 21:44
你吧最后一个输出语句去掉,直接得到最大值
作者: 胡eason    时间: 2016-8-23 21:59
加油!加油!加油!加油!
作者: li--yong    时间: 2016-8-23 22:01
多写几个就理解深了,这东西要连的
作者: 695212308    时间: 2016-8-23 22:32
666666666666666666
作者: yej    时间: 2016-8-23 23:31
因为你取的数组恰好是1-7从小排到大,从arr[0]=1作为参照进行依次比较,数组元素每次比他大都输出,依次输出2,3,4,5,6,7,在循环前又输出了一次1,排序刚好是1,2,3,4,5,6,7,看起来就像遍历数组了.如果不是恰好升序排列,并不会看起来像遍历




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2