黑马程序员技术交流社区

标题: 为什么一个函数里面两个返回? [打印本页]

作者: 突然世界晴    时间: 2015-3-8 20:11
标题: 为什么一个函数里面两个返回?
public static String getMaxSubString(String s1,String s2)
{
  for(int x=0;x<s2.length();x++)
  {
   for(int a=0,b=s2.length()-x;b!=s2.length()+1;a++,b++)
   {
    String temp=s2.substring(a, b);
    if(s1.indexOf(temp)!=-1)
     return temp;
   }
  }
   return "";
}

public class StringMethodDemo
{
public static void main (String[] args)

  String s1="abchelloabc";
  String s2="aaahellob";
  sop(getMaxSubString(s1, s2));
}

第一个方法里面一个return就不对

作者: yangruijing    时间: 2015-3-8 21:08
两个return语句,第一个是在循环时找到了最大的子串,则将找到的最大子串temp返回,调用函数结束,如果循环结束了,没有找到子串,那么返回null,调用函数结束
两个return语句是在不同的条件的结束调用函数
作者: hastar    时间: 2015-3-8 21:11
因为两个return在方法中的功能是不一样的。第一个return是在满足条件的情况下直接结束方法返回需要的值,
第二个return是整个方法都执行完都没有出现满足条件的情况下返回需要的值

作者: 金康俊    时间: 2015-3-8 21:24
函数好像没有放在类里面吧?这样也可以的吗?
作者: 突然世界晴    时间: 2015-3-8 22:22
hastar 发表于 2015-3-8 21:11
因为两个return在方法中的功能是不一样的。第一个return是在满足条件的情况下直接结束方法返回需要的值,
...

原来是这样子啊,谢谢
作者: 勇闯☀☀黑马    时间: 2015-3-8 22:36
还没学到这呢
作者: 空洞的望着窗外    时间: 2015-3-8 22:43
找到就返回最大子川,找不到就返回   空白
作者: 赵涛涛    时间: 2015-3-8 22:51
两个的作用范围不一样,第一个return是在程序进入if循环判断为真时执行,而第二个return是在结尾处,代表整个for循环结束后,如果还没有返回值,则执行结尾的return




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