用 Java 编写一个函数,实现以下逻辑:您的手机响了。如果您应该回答,请返回 true。通常你会接电话,但早上除外,只有当你妈妈打电话时你才会接电话。在所有情况下,如果您睡着了,就不会回答。
public boolean answerCell(boolean isMorning, boolean isMom, boolean isAsleep)
{
if (isMom && isMorning && isAsleep)
{
return false;
}
if ((!isMom) && isMorning && isAsleep)
{
return false;
}
if (isMorning && isMom && (!isAsleep))
{
return true;
}
if ((!isMorning) && isMom && isAsleep)
{
return false;
}
else
{
return true;
}
}
对于我上面编写的代码,我只获得了 63% 的问题覆盖率,而且我不明白为什么。我收到的反馈是(假,假,真)是真的,但我期待的是假的。并且 (true, false, false) 是 true,但它也应该是 false。
最佳答案
Simplifying if statements
这是详细的方法,因此您可以了解应该做什么:
public boolean answerCell(boolean isMorning, boolean isMom, boolean isAsleep){
if(isAsleep){
return false;
}else{
if(isMorning){
if(isMom){
return true;
}else{
return false;
}
}else{
return true;
}
}
}
但是您可以使用一行 If 语句执行以下操作:
public boolean answerCell(boolean isMorning, boolean isMom, boolean isAsleep){
return isAsleep?false:isMorning?isMom:true;
}
如果您需要有关一行 if 语句的更多信息,您可以查看 this resource ,虽然网上有很多信息。
关于java - 返回 boolean 值的 if 语句函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54857422/