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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 邵阳 中级黑马   /  2012-6-10 15:36  /  1487 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 邵阳 于 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 个错误



这是怎么回事


5 个回复

倒序浏览
既然是void就不应该有返回值了啊
回复 使用道具 举报
你定义了 void 就是无返回值的方法 不能再写return语句  
你直接return这个词去掉  直接就光写打印语句  程序就可以运行了
回复 使用道具 举报
  return  System.out.println("max="+max);

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

System.out.println("max="+max);
                 return;   
这样也可以得到正确结果啊,怎么回事不是不加return吗?还是不在前面加啊!
回复 使用道具 举报
邵阳 发表于 2012-6-10 16:05
System.out.println("max="+max);
                 return;   
这样也可以得到正确结果啊,怎么回事不是不加return吗 ...

是不能给他返回具体内容 函数运行完都会自动返回的   你这个return就是void函数的最后一句 平常都是隐式的 你写最后面就等于给显示出来了!所以也没问题
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马