黑马程序员技术交流社区

标题: 程序中有个小插曲不理解,多问多学,互相交流。 [打印本页]

作者: 王林涛    时间: 2013-5-12 10:40
标题: 程序中有个小插曲不理解,多问多学,互相交流。
本帖最后由 王林涛 于 2013-5-13 10:23 编辑

class ArrayTest
{
   public static int getMax(int[] arr) →此位置是要获取数组arr中的最大值
   {
            int max = arr[0];  →此语句为何要使 max=arr[0];应该是定义一个变量,此变量应该是数组arr中的任意一个数值,可这里为什么要写成arr[0]呢,arr[0]代表什么,是arr数组中0角标的数值吗?
            for(int x=1;x<arr.length;x++)
   {
            if( arr[x]>max)
                max=arr[x];   
   }
           return max;
   }
   public static void main(String[] args)
   {
    int[] arr ={5,1,6,4,2,8,9};
    int max = getMax(arr); → 此处getMax(arr)如何解释?
    System.out.println("max="+max);
   }
   //System.out.println("max="+max); →如果把输出语句写到这个位置是否正确?

}
作者: 徐启坤    时间: 2013-5-12 10:52
第一个是先假定数组中的第一个为最大,然会循环比较,比它大就把它换掉
第二个就是传入你定义的数组作为参数调用函数,然后直接把函数返回的最大值赋值给max变量
第三个,主函数是程序执行的入口,不说放在外面报不报错,就算不报错也根本不会执行它的
作者: 王林涛    时间: 2013-5-12 10:53
尹桥印 发表于 2013-5-12 10:41
占楼~~回答
第一个问题:
int max = arr[0]; 这个是在给变量max初始化值,初始化值就是arr数组中第一个元素 ...

OK,谢啦,理解啦
作者: 、__WSD吴少东    时间: 2013-5-12 11:03
class ArrayTest
{
    public static int getMax(int[] arr)   //这个方法就是为了获取一个int类型数组的最大值,   
   {
             int max = arr[0];      //在这里,是假设,0脚标上的元素是最大值,然后用for循环将它和其它脚标上的元素进行比较,
                                                //如果其他脚标上的元素比它大,就将该脚标上的元素赋给max   这一步是一直进行的,知道讲该数组全部比完,
            for(int x=1;x<arr.length;x++)
    {
             if( arr[x]>max)
                 max=arr[x];   
    }
            return max;
    }
    public static void main(String[] args)
    {
     int[] arr ={5,1,6,4,2,8,9};
     int max = getMax(arr);     //这里调用的你编写的getMax()方法,  所有的方法,必须通过主函数,也就是带有main 的一个静态函数,来启动,所以这一步是必不可少的,
                                               // 括号里的arr 是因为,你定义的getMax()需要的参数是一个int 类型的数组, 也就是定义getMax()函数的时候,括号里面的(int[] arr)
    System.out.println("max="+max);
    }
    //System.out.println("max="+max); //把输出语句放在这里,你是想打印什么?   getMax() 唔..你可以认为是一个使用后,就消失的局部变量,虽然不是很恰当。
                                                           //  用完之后就已经消失了,那还打印什么?  空气?
}

唔..我觉得这样够详细了已经,你要是还不懂,那就死记住,用多了就知道了,熟能生巧.




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