在课堂上的一个例子中,我们将此方法作为更大问题的一部分:
public boolean isWinner()
{
return ((points == 4) || (score == 4));
}
我对布尔类型方法的印象是,他们必须返回true / false,如" return true;"在这个例子中没有where指示它是否返回true / false所以如果points == 4它是否返回true?如果得分== 4,它会返回false吗?或者如果其中任何一个为真,那么整个return语句是真的吗?
答案 0 :(得分:3)
如果points == 4
或score == 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
因此,如果points
和score
都是false
,那么该函数将返回false。否则它将返回true。
答案 2 :(得分:1)
return ((points == 4) || (score == 4));
执行上述操作会产生return true
或return false
如果左侧操作数的值等于右侧操作数的值,则==运算符生成的值为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)