Java - 多个return语句 - 第一个不返回?

时间:2015-06-01 13:30:42

标签: java android debugging return

我正在玩一些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;
}

1 个答案:

答案 0 :(得分:2)

如果if语句中的条件为真,则执行return true;并终止该方法。

要检查这一点,只需在println(...)指令前加return false;,您就会看到它不会被执行。再次检查你的调试,你可能会对这个工具感到困惑。