java boolean方法不返回true / false?

时间:2014-05-07 20:37:14

标签: java

在课堂上的一个例子中,我们将此方法作为更大问题的一部分:

  public boolean isWinner()
{
    return ((points == 4) || (score == 4));

}

我对布尔类型方法的印象是,他们必须返回true / false,如" return true;"在这个例子中没有where指示它是否返回true / false所以如果points == 4它是否返回true?如果得分== 4,它会返回false吗?或者如果其中任何一个为真,那么整个return语句是真的吗?

6 个答案:

答案 0 :(得分:3)

如果points == 4score == 4为真,那么整个事情都是正确的。所有布尔表达式都向下求值为true或false。

这个表达式:

return ((points == 4) || (score == 4));

将返回true或false。

答案 1 :(得分:2)

||是OR运算符。哪两个表达式具有以下真值表:

T T = T
T F = T
F T = T
F F = F

因此,如果pointsscore都是false,那么该函数将返回false。否则它将返回true。

答案 2 :(得分:1)

return ((points == 4) || (score == 4));

执行上述操作会产生return truereturn false

来自specification

  

如果左侧操作数的值等于右侧操作数的值,则==运算符生成的值为true。否则,结果是错误的。

还了解了specification中的||操作我希望这会清除您的疑虑

答案 3 :(得分:1)

return (points == 4) || (score == 4);

相同
boolean ret = (points == 4) || (score == 4);
return ret;

相同
if (points == 4) return true;
if (score == 4) return true;
return false;

答案 4 :(得分:0)

您应该查看||的Java真值表和&&这将有助于您了解布尔结果。 如你的问题所在,如果这些陈述的 为真,则返回true,如果它们都为假,则返回false。

答案 5 :(得分:0)

该代码中只有一个例外。 如果points / score是Integer引用null,则会导致异常。

public class Snippet {
    private Integer points;
    private Integer score;

    public boolean isWinner() {
        return ((points == 4) || (score == 4));

    }

    public static void main(String[] args) {
        System.out.println(new Snippet().isWinner());
    }
}

输出:

Exception in thread "main" java.lang.NullPointerException
    at snippet.Snippet.isWinner(Snippet.java:8)
    at snippet.Snippet.main(Snippet.java:13)