黑马程序员技术交流社区

标题: 关于函数调用与求最大值传值的疑问。 [打印本页]

作者: 黑马周磊    时间: 2012-11-1 15:57
标题: 关于函数调用与求最大值传值的疑问。
class Demo
{
    public static void main(string [] args)
    {
         int [] arr = {3 ,2 ,1 ,7 ,8 ,9 };
      int max = getMax(arr);
         system out println("max=" + max);
    }
   
    public static int getMax(int [] arr)
    {
     int max = 0;
     for(int x=1; x<arr.length;x++)
          if(arr[x]>arr[max])
             max=x;
     }
     return arr[max];
}

运行程序后的打印结果是9.

这课的内容没看明白,请老师帮我细说一下。
作者: 小灰灰    时间: 2012-11-1 16:01
  1. for(int x=1; x<arr.length;x++)
  2.           if(arr[x]>arr[max])
  3.              max=x;
  4.      }
复制代码
中得到是数组中最大数的下标
作者: 朱宏青    时间: 2012-11-1 17:34
首先你要明白这块代码的具体作用是什么:

public static int getMax(int [] arr)
    {
     int max = 0;
     for(int x=1; x<arr.length;x++)
          if(arr[x]>arr[max])
             max=x;
     }
     return arr[max];
}

不过为了回答完整 我还是给你说下:这段代码载入了一个整型数组arr,通过中间的循环运算得到了这个整型数组里最大的数的下标(max),最后通过return返回了这个下标在这个数组里所对应的那个整型数字(arr[max]).

然后这个返回的数字就赋予给了整型max函数,并在最后打印出来 所以得到是9。

你可以自己去测试一下这段代码:把里面的数组数字换换,然后再看看结果,你会懂的!
作者: HeiMa-黄倲江    时间: 2012-11-1 17:49
                                 //定义数组
                int[] a = {1,3,66,7,-77,8,-9};
                //用Arrays.sort将数组排序
                java.util.Arrays.sort(a);
                //直接把最后的那个数拿出来
                System.err.println(a[a.length-1]);




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