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

© \(^o^)/ 中级黑马   /  2014-4-21 11:30  /  1290 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. /*
  2. * 将字符串反转。
  3. */
  4. class AD
  5. {
  6. public static void main(String[] args)
  7. {
  8. String s=" ab cd ";
  9. sop("("+reverseString(s)+")");

  10. }
  11. public static String reverseString(String s)
  12. {
  13. return reverseString(s,0,s.length());//在这边的话是调用重载函数的,如果不加return显然编译失败,但是加上return后就通过了,return在这边是取到一个什么样的作用。
  14. }
  15. public static String reverseString(String s,int start,int end)
  16. {
  17. char[] chs=s.toCharArray();
  18. reverse(chs,start,end);
  19. return new String(chs);
  20. }
  21. public static void reverse(char[] chs,int x,int y)
  22. {
  23. for(int start=x,end=y-1;start<end;start++,end--)
  24. {
  25. swap(chs,start,end);
  26. }
  27. }
  28. public static void swap(char[] chs,int x,int y)
  29. {
  30. char temp=chs[x];
  31. chs[x]=chs[y];
  32. chs[y]=temp;
  33. }
  34. public static void sop(Object obj)
  35. {
  36. System.out.println(obj);
  37. }

  38. }
复制代码
return reverseString(s,0,s.length());//在这边的话是调用重载函数的,如果不加return显然编译失败,但是加上return后就通过了,return在这边是取到一个什么样的作用?是将值返回的话为什么参数列表不同也可以?

7 个回复

倒序浏览
和你说的没有关系   是这个方法定义的时候要返回一个字符串  你在reverseString(s,0,s.length());下面return一个字符串就不会报错了吧
回复 使用道具 举报
public static String reverseString(String s){}这样的方法是有返回值的,实现中必须return一个字符串给调用者,
public static void reverseString(String s){}返回值可以用void实现时就不必有return
回复 使用道具 举报
也是起到返回的作用呀, reverseString(参数1,参数2,参数);这个函数方法,将返回一个String类型,而reverseString(参数)函数也是返回String,
在调用 reverseString(参数) 顺便又将 他返回给调用者,像中介一样
这是将句代码写成了一句代码
本来是 =>
String temp=rverseString(参数1,参数2,参数);
return temp;
这样应该看得懂了吧
回复 使用道具 举报
return的作用 第一 是 返回值
比如你写一个方法 要返回一个数值  比如 加法的 你最后要返回一个 和
     public static int  add(int a, int b)     //这里的 int 如果变为 String 则必须 返回 一个字符串才可以
{
     return  a+b; //返回a+b的和  返回的值的类型 必须 和上面的 int 保持一致 。}
因为这个方法需要一个 int 类型的返回值,所以 你 写 return 0; 也不会报错。   
               
                  第二是 用于结束方法运行  。如果函数的返回值是 void, return 就可以省略不写 但是还是存在的。
回复 使用道具 举报
return 是退出该方法,假如你这个方法不要返回值的时候,也就是 public void 方法名:的时候就可以不用,他运行到大括号结尾就自动返回,当 方法签名中 不是这种 public void 方法名:的时候就要写返回 ;一般用编译器都会提醒你要返回值,不用编译器时,java在生成.clsaa文件的时候也会报错的。在有些方法中,我只需要得到我想要的值的时候就返回,不想执行其他的操作的时候也可以用return进行返回。
回复 使用道具 举报
每个方法都有return语句,void也有,main方法也有,默认的是return;只是你写的时候省略了,但是虚拟机在编译的时候会自动加上,主要是代码执行到此处终止,而如果是有返回值的方法,必须手动加上,返回这个值给其他方法调用,楼主这个你明明定义的有返回值类型的方法,你不加肯定会报错。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马