请问我在for循环中有return s3,但当我不再在后面写return null时,为什么编译时会提示没有返回值呢?我不是有return s3吗?复制代码
- class StringTest4
- {
- public static String getMaxSubString(String s1,String s2)
- {
- String max="";
- String min="";
- max=(s1.length()>s2.length())?s1:s2;
- min=(max==s1)?s2:s1;
- for (int x=0;x<min.length() ;x++ )
- {
- for (int y=0,z=min.length()-1-x;z!=min.length() ;y++,z++ )
- {
- String s3=min.substring(y,z);
- if(max.contains(s3))
- return s3;
- }
- }
- return null;
- }
- public static void main(String[] args)
- {
- String s1="abcwerthelloyuiodef";
- String s2="cvhellobn";
- System.out.println(getMaxSubString(s1,s2));
- }
- }
还有就是我加return null后,结果不是应该返回空吗,但是为什么还能得到正确的结果hello呢?还请大家指教一下,谢谢啦~~
changweihua 发表于 2013-6-18 20:06
return s3,仅仅是在max.contains(s3)成立是执行,当不符合的时候,就不会执行return s3了,当方法执行retu ...
shang1jk 发表于 2013-6-18 20:25
第一个问题: return s3; 语句并不一定会被执行, 如果始终不被执行的话, 这个方法就没有返回值了.
第二个 ...
杜成龙 发表于 2013-6-18 21:04
最后一个return null是在for循环外面的,不管for循环里的return s3有没有执行,按说return null一定会执 ...
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |