鍍金池/ 問答/Java  C  C++  C#  HTML/ 邏輯計(jì)算中,如何遇true保持,遇false取反?

邏輯計(jì)算中,如何遇true保持,遇false取反?

比如分別有兩個布爾變量a,b,當(dāng)b=true時,返回a,b=false時,返回!a,如何用簡單運(yùn)算實(shí)現(xiàn)?
a xxx b //xxx應(yīng)如何寫?

其實(shí)是個這種問題,如何:
真真得真
真假得假
假假得真

注:三元表達(dá)式暫不考慮,謝謝。

回答
編輯回答
空痕

a ? a : !a
a && a || !a
下次提問,講清楚了。。以下是修改問題后的答案。
b && a || !b && !a || a

2018年6月5日 01:48
編輯回答
離殤

三元表達(dá)式 java和javascript 一樣

x?x:!x 最簡潔的

2018年4月9日 08:26
編輯回答
汐顏

保持誰?取反誰?a嗎?如果說a是一個布爾型變量那這樣不是相當(dāng)于直接返回true嗎?atrue保持true,afalse取反a,那不還是true嗎?

這樣是沒有意義的,因此我假設(shè)題主想用a控制另一個布爾型的變量b。

設(shè)運(yùn)算結(jié)果為Q,列出真值表:

a b Q
true true true
true false false
false true false
false false true

即可得到Q = ! (a ^ b),完事。其中^為異或運(yùn)算。

如果b是其它類型的,對于腳本語言來說,可以Q = a ? b : !b,對于強(qiáng)類型語言來說,你需要為b規(guī)定一個“取反”后的值,比如NULL或其它的什么鬼,然后Q = a ? b : NULL,當(dāng)然你也可以為b重載!運(yùn)算符。

2018年6月26日 11:47
編輯回答
來守候

這樣?

var bool = true;//or false
bool ? a : !a

你這個比較像異或

console.log(!(true ^ true))//true
console.log(!(false ^ true))//false
console.log(!(false ^ false))//true
2018年2月18日 00:38