我有2个boolean
变量,例如:
boolean isWhite;
boolean isTall;
所以,我想为4种可能的情况({(isWhite, isTall), (!isWhite, isTall), (isWhite, !isTall), (!isWhite, !isTall)}
)确定不同的行为。
1) 有没有比每次使用if/else
更优雅和实用的方法?
if(isWhite) {
if(isTall) {
// Case 1
}
else {
// Case 2
}
else {
if(isTall) {
// Case 3
}
else {
// Case 4
}
2) 如果这样做会有任何不同吗?
if (isWhite && isTall)
// Case 1
if (isWhite && !isTall)
// Case 2
if (!isWhite && isTall)
// Case 3
if (!isWhite && !isTall)
// Case 4
if(isWhite && isTall)
。如果这个测试是false
,那么你就知道要么 1)isWhite == false
,2)isTall == false
或者 3) 两者都是false
。所以你只需要测试!isWhite
,!isTall
和!isWhite && !isTall
。进一步的推断也是可能的,但可能会增加复杂性。 - Boris the Spider