比如分别有两个布尔变量a,b,当b=true时,返回a,b=false时,返回!a,如何用简单运算实现?
a xxx b //xxx应如何写?
其实是个这种问题,如何:
真真得真
真假得假
假假得真
注:三元表达式暂不考虑,谢谢。
比如分别有两个布尔变量a,b,当b=true时,返回a,b=false时,返回!a,如何用简单运算实现?
a xxx b //xxx应如何写?
其实是个这种问题,如何:
真真得真
真假得假
假假得真
注:三元表达式暂不考虑,谢谢。
保持谁?取反谁?a
吗?如果说a
是一个布尔型变量那这样不是相当于直接返回true
吗?a
为true
保持true
,a
为false
取反a
,那不还是true
吗?
这样是没有意义的,因此我假设题主想用a
控制另一个布尔型的变量b
。
设运算结果为Q
,列出真值表:
a |
b |
Q |
---|---|---|
true | true | true |
true | false | false |
false | true | false |
false | false | true |
即可得到Q = ! (a ^ b)
,完事。其中^
为异或运算。
如果b
是其它类型的,对于脚本语言来说,可以Q = a ? b : !b
,对于强类型语言来说,你需要为b
规定一个“取反”后的值,比如NULL
或其它的什么鬼,然后Q = a ? b : NULL
,当然你也可以为b
重载!
运算符。
10 回答11.1k 阅读
15 回答8.4k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
8 回答6.2k 阅读
2 回答2.6k 阅读✓ 已解决
这样?
你这个比较像异或