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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 单先生 中级黑马   /  2016-8-22 22:46  /  810 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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



为什么会遍历一次数组呢?

13 个回复

正序浏览
yej 中级黑马 2016-8-23 23:31:06
14#
因为你取的数组恰好是1-7从小排到大,从arr[0]=1作为参照进行依次比较,数组元素每次比他大都输出,依次输出2,3,4,5,6,7,在循环前又输出了一次1,排序刚好是1,2,3,4,5,6,7,看起来就像遍历数组了.如果不是恰好升序排列,并不会看起来像遍历
回复 使用道具 举报
666666666666666666
回复 使用道具 举报
多写几个就理解深了,这东西要连的
回复 使用道具 举报
加油!加油!加油!加油!
回复 使用道具 举报
你吧最后一个输出语句去掉,直接得到最大值
回复 使用道具 举报
顶顶顶顶顶顶顶顶顶顶顶
回复 使用道具 举报
阿卜 中级黑马 2016-8-23 12:20:47
8#
for (int i = 0;i < arr.length ;i++ ) {
                        if (max < arr[i]) {
                                max = arr[i];
                        }
                        System.out.println(max);
                }
这段代码
如果你把数组改成7654321就会打印出7个7了
回复 使用道具 举报
把你最下边的那个System.out.println(max);删了就好了,建议你人工走一下程序,你不是对数组理解不够,而是对程序如何走的概念不足,你亦可以自己推演一下它的每一步,然后就理解了
回复 使用道具 举报
找到数组中最大的值,当然要遍历数组了。假设第一个是最大的,然后依次比较,如果有比它大的,就存储下来,直到最后一个
回复 使用道具 举报
因为你getMax()中有输出语句,而你的数组又是升序排列,所以每次的最大值都会变化,看起来就像是遍历数组了。。。实际并不是,只是把每次的最大值输出而已。。。
回复 使用道具 举报 1 0
得到每一个数组元素中的值,要不然怎么比.?
回复 使用道具 举报
写的时候把 每一步的注释加上  就会加深理解
回复 使用道具 举报
感觉主要还是对数组理解不深啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马