我厌倦了思考:)
在java中是否有任何简单的解决方案?
A B | = XOR -> NO
-------- AND -> NO
0 1 | 0 OR -> NO
0 0 | 0
1 1 | 0
1 0 | 1
这来自
condition 1 if condition 2 take condition 3
evaluated to evaluated to to consider
true true
return a && if(b) && c
else only a
// i can make it like this
return (a && b) ? a && b && c : a;
// then simplifying
return b ? a && c : a;
但是,如果是声明,我需要制作解决方案/计算&在右边替换
或者可能有更简单的方法来写这个条件?
&&& !b工作? - bradimus
也许是我 - 但你问的是什么? - 充气鳗鱼的气垫船
要考虑的示例:
public boolean isRequestInQue(Request<User> requestToCheck,
boolean checkCallerAlive) {
int id = requestToCheck.getId();
Request<User> requestInQue = _stateCallerRequestList.get(id);
return requestInQue != null
? checkCallerAlive
? requestToCheck.equals(requestInQue)
&& requestInQue.isCallerAlive()
: requestToCheck.equals(requestInQue)
: false;
}
三元运算符可能很难遵循,特别是如果您要求逻辑帮助。你能用if语句给出一个例子吗? - 戴夫
if(requestInQue!=null)
if(checkCallerAlive)
if(requestToCheck.equals(requestInQue))
if(requestInQue.isCallerAlive())
return true;
else if(requestToCheck.equals(requestInQue)
return true;
return false;
最终基于戴夫的回答
true && (!false || true) = true
true && (!true || true) = true
true && (!true || false) = false
true && (!false || false) = true
public boolean checkWithCifB(boolean a, boolean b, boolean c) {
return a && (!b || c);
}
答案 0 :(得分:1)
我认为这应该有效:
return requestInQue != null && requestToCheck.equals(requestInQue) &&
(!checkCallerActive || requestInQue.isCallerAlive());