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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

public static String method(String s2,String s1)
        {
                String max="";
                String min="";
                max=(s1.length()>s2.length())?s1:s2;
                min=(s1==max)?s2:s1;
                System.out.println(max+"----"+min);
                for(int x=0;x<min.length();x++
                        for(int y=0,z=min.length()-x;z!=min.length()+1;y++,z++)
                {
                                String temp=min.substring(y,z);
                                if(max.contains(temp))
                                return temp;
                }
        return "";//为什么呢?
        }

6 个回复

倒序浏览
你这个方法的返回值类型是String的,而你函数里面的返回语句是要满足条件才回返回的。如果最后不加一句return。运行的时候没有满足条件你这个方法不是没有返回任何东西吗?
回复 使用道具 举报
方法是有返回类型的,所以在方法体内每一个分支结构都必须有一个返回值。
回复 使用道具 举报
方法上的返回值是String类型所以要有个return返回一个字符串
回复 使用道具 举报
for循环里的return temp;有可能执行不到,即没有相同的子串时!所以为了匹配返回类型String,需要在匹配失败时返回“”!
回复 使用道具 举报
恩恩 谢谢 懂了:lol
回复 使用道具 举报
mmppp 中级黑马 2014-12-12 09:28:03
7#
你这个函数是有返回值的,所以要以return 这个返回值结束啊。
for循环里面有return了,但是如果不满足if条件,跳出循环的话,就还需要一个return啊
然后return “” 是因为 “”是一个字符串啊,你如果愿意,自定义其他字符串类型的返回值也ok
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马