java可以使这个while循环更干净吗
有没有办法使下面的while循环更优化一点。特别让我感到困扰的是,我必须在if条件内外重复代码(关闭缓冲区并返回值),我想了解是否有更好/更面向性能的方法来处理此类代码
while ((line = buf.readLine()) != null) {
// Get a random line number
if (currLine == lineToFetch) {
quote = line;
Log.v("LINE", line);
randomQuote.close();
buf.close();
return quote;
} else {
currLine++;
}
}
randomQuote.close();
buf.close();
return quote;
# 1 楼答案
你可以读几行,直到找到你想要的那一行。如果您已经找到了它,那么该行将是非空的
# 2 楼答案
你可以用
finally
块来简化它,就像这样-# 3 楼答案
由于您调用
close()
并返回quote
无论您找到或没有找到您的线路,您可以让它更漂亮:# 4 楼答案
基本上,找到报价单后退出while循环:
# 5 楼答案
只需使用
break
退出循环,然后依赖函数末尾的清理代码: