黑马程序员技术交流社区

标题: 【已解决】求数组最大值 [打印本页]

作者: 邵阳    时间: 2012-6-10 15:36
标题: 【已解决】求数组最大值
本帖最后由 邵阳 于 2012-6-10 17:33 编辑

毕老师视频中,引用了函数中的结果 return  arr[max],然后引用函数结果后在System.out.println(max)。
我就想延伸一下,能不能先在函数中打印出,即return  System.out.println(max),之后再直接引用函数,最后得结果。
下面是我的代码
  1. class Demo
  2. {
  3. public static void getMax(int[]arr)      //这里我把int还改成了void,因为这是先打印,所以类型不明确。
  4. {

  5. int max=arr[0];

  6. for (int x=1;x<arr.length ;x++ )
  7. {

  8. if (arr[x]>max)

  9. max=arr[x];

  10. }
  11. return System.out.println("max="+max);
  12. }

  13. public static void main(String[] args)
  14. {
  15. int[] arr={5,1,6,4,2,8,};
  16. getMax(arr);

  17. }

  18. }
复制代码
但是却得到D:\java\zuoye>javac  6.10.java
6.10.java:142: 错误: 对于结果类型为空的方法, 无法返回值
             return  System.out.println("max="+max);
                                       ^
1 个错误



这是怎么回事



作者: 黑马-李勇    时间: 2012-6-10 15:50
既然是void就不应该有返回值了啊
作者: 黑马张扬    时间: 2012-6-10 15:55
你定义了 void 就是无返回值的方法 不能再写return语句  
你直接return这个词去掉  直接就光写打印语句  程序就可以运行了
作者: 何志文    时间: 2012-6-10 15:57
  return  System.out.println("max="+max);

因为方法返回的是void
所以不能有返回值。。却掉 return。
这样就可以了 System.out.println("max="+max);
作者: 邵阳    时间: 2012-6-10 16:05
黑马张扬 发表于 2012-6-10 15:55
你定义了 void 就是无返回值的方法 不能再写return语句  
你直接return这个词去掉  直接就光写打印语句  程 ...

System.out.println("max="+max);
                 return;   
这样也可以得到正确结果啊,怎么回事不是不加return吗?还是不在前面加啊!
作者: 黑马张扬    时间: 2012-6-10 16:14
邵阳 发表于 2012-6-10 16:05
System.out.println("max="+max);
                 return;   
这样也可以得到正确结果啊,怎么回事不是不加return吗 ...

是不能给他返回具体内容 函数运行完都会自动返回的   你这个return就是void函数的最后一句 平常都是隐式的 你写最后面就等于给显示出来了!所以也没问题




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