黑马程序员技术交流社区
标题:
请教关于return的相关知识
[打印本页]
作者:
薆情媬証書
时间:
2013-10-15 23:50
标题:
请教关于return的相关知识
本帖最后由 薆情媬証書 于 2013-10-16 11:52 编辑
有如下段代码,求教,这些return到底是怎么回事?应该返回哪个呢?
下面代码中这么多return,到底怎么返回呢,最外层的两个return中,
如果进了if (sb.length() != 0)
return sb.toString();这个语句,还返回下面的null吗?
<p>public String myReaderLine()throws IOException
{
int len = 0;
StringBuilder sb = new StringBuilder();
while ((len = fr.read()) != -1)
{
if ((char)len == '\r')
continue;
if((char)len == '\n')
return sb.toString();
sb.append((char)len);
}
if (sb.length() != 0)
return sb.toString();
return null;
} </p>
复制代码
作者:
murder_fol
时间:
2013-10-16 00:07
一执行return语句,函数体就结束了,满足条件return了sb.toString(),函数就结束了,当然不return null
作者:
loading……99.9
时间:
2013-10-16 00:10
哪个条件为真了则返回那个,例如if((char)len == '\n') return sb.toString(); 如果(char)len == '\n'为真则返回sb.toString();
如果进了if (sb.length() != 0)return sb.toString();这个语句,还返回下面的null吗?不会, 因为这个函数已经返回sb.toString()了,下面的代码将不会执行了。
作者:
赖龙威
时间:
2013-10-16 00:28
<p>public String myReaderLine()throws IOException
{
int len = 0;
StringBuilder sb = new StringBuilder();
while ((len = fr.read()) != -1)
{
if ((char)len == '\r') //如果是 ‘\r’跳出这次循环。
continue;
if((char)len == '\n') //如果是'\返回sb的转成String类型的样子
return sb.toString();
sb.append((char)len); //如果不是上面的两种情况,sb的后面读取到的内容(readline()读到的)
}
if (sb.length() != 0) //到读到文件末尾返回 sb的String类型
return sb.toString();
return null; //如果没有这句话,会提示不是每种情况都有返回值
} </p>
复制代码
所有的解释都在注解上
作者:
薆情媬証書
时间:
2013-10-16 11:50
谢谢亲们!!睡了一觉,弄懂了!!呵呵
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2