为什么在从"空"调用方法时不执行print语句?主要

时间:2017-04-15 02:02:12

标签: java

(我真的不知道如何更好地表达这个问题。我确定这里有一个我不知道的概念,所以如果可以,请提出更好的措辞 - 如果结果是重复,请指导我回答问题

我一直在玩Java,发现了一些我无法解释的行为。在以下代码中,我希望打印0。但是,没有打印任何内容。我能想到的唯一可能的解释是主要方法在刷新流之前结束,但对我来说这可能没有意义。简而言之,这个代码什么都不打印而不是0

class Test {
    public static void main (String [] args) {

        if(false && method()){

        }
    }
    public static boolean method(){
        System.out.println(0);
        return true;
    }
}

1 个答案:

答案 0 :(得分:1)

因为没有调用该方法。 false导致和short-ciruit

if(false & method()){ // <-- body will not execute, but the evaluation
                      //     does not short circuit.

if(false || method()){ // <-- body will execute, method() is true

if(method() && false){ // <-- body will not execute, because of false.

将按预期工作。