我实际上尝试将四个不同的布尔值转换为真/假。
我的情况是,
True false false false Then true else false
false True false false Then true else false
false false True false Then true else false
false false false True Then true else false
我试过这样
int a=1;
int b=0;
int c=0;
int d=0;
int cnt=0;
// A block of code will be executed only when any one of the four variables is 1 and
//the rest of them is 0. and another block will be executed when the above mentioned
//condition become false.
if (a==0) { cnt+=1; }
if (b==0) { cnt+=1; }
if (c==0) { cnt+=1; }
if (d==0) { cnt+=1; }
if (cnt==3) { // true block } else { //false block }
上面的代码工作得很好,但我接受了一个挑战,在一个 if 语句中检查这个条件。然后我像这样尝试。
if(!((!(a==0) && !(b==0)) && (!(c==0) && !(d==0))))
{
//true block
}
else
{
//false block
}
上述条件在某些组合中失败(a=1 b=0 c=1 d=1)。任何人都可以指出问题是什么。?或提出任何新的想法。?
My objective is convert (3 false + 1 true) into true other wise into false.
[注意:我只是为了理解目的而给出的场景。a、b、c、d 值可能不同。看我的目标。不要说支持 1 和 0 的答案]