我正在玩一些Android编程,并且正在编写一些方法来打开和关闭文件。好吧,我想对文件做一些基本的检查,如果满足条件则返回true,如果到达方法的末尾则返回false。
我正在使用AndroidTestCase对这些进行测试,在我向我的清单添加了必要的权限以修复我的“canRead()”调用后,我开始逐步完成它们。我看到调试器点击了我的“返回true”语句,但随后踩到它,它转到下一行“return false”而不是实际返回。
我知道我可以在else块中包装“return false”,但我很好奇为什么函数在假定返回之后继续执行。在“if”块中返回语句只是从块中返回,还是应该返回整个函数调用?
public boolean OpenFile(String testFile) {
myFile = new File(testFile);
if (myFile.exists() && myFile.isFile() && myFile.canRead()) {
return true;
}
return false;
}
public boolean CloseFile() {
if (myFile != null ) {
return true;
}
return false;
}
答案 0 :(得分:2)
如果if
语句中的条件为真,则执行return true;
并终止该方法。
要检查这一点,只需在println(...)
指令前加return false;
,您就会看到它不会被执行。再次检查你的调试,你可能会对这个工具感到困惑。