鉴于以下条件:
bool roundUp = (useSharps && lowerHalf) || (!useSharps && !lowerHalf);
//which means roundUp will be false if useSharps but !lowerHalf,
//or if !useSharps but lowerHalf
是否有更短的方法来确定roundUp
?
以下是可能的选项:
| useSharps | !useSharps |
|lowerHalf|!lowerHalf|lowerHalf|!lowerHalf|
-------------------------------------------
roundUp| V | X | X | V |
!roundUp| X | V | V | X |
-------------------------------------------
V = true, X = false
更新
也许我的代码错了。我正在寻找的最终结果是表中的内容。
答案 0 :(得分:17)
如果您希望变量useSharps
和lowerHalf
相等(两者都是假或两者都是真的),您可以检查是否相等:
var roundUp = useSharps == lowerHalf;
修改强>
如果我正确地解释了你的表格,你的代码就完全适合它(以及我的答案中的缩短版本)。表格本身可以简化为:
lowerHalf | useSharps | roundUp
--------------------------------
0 | 0 | 1
0 | 1 | 0
1 | 0 | 0
1 | 1 | 1
答案 1 :(得分:2)
如果您需要一个值true
和另一个false
,则可以使用:
var roundUp = useSharps == !lowerHalf;
答案 2 :(得分:2)
其他答案更容易,但我只是想指出另一种方式。 您可以使用xor运算符检查2个布尔变量是否具有不同的值。
useSharps ^ lowerHalf
如果返回true,则它们具有不同的值,如果为false,则它们具有相同的值。