2017-02-17 8 views
0

は、私はそれC#ブールオペランドの使用

A || B 

を達成するために、この句を使用していますが、それは正しい結果を提供していない次のような結果

A B = 
T T T 
F T F 
T F F 
F F F 

を持っていると思います。

私は間違ったオペランドを使用していますか?

+7

使用オペレータA && B –

+1

@HimBromBeere Becuase'である:これは、オペレータの非短絡バージョン(真bolean論理及び又は演算子)で発生しませんC#の論理演算子? – InBetween

+1

@InBetweenこれは多くの言語に適用されます。 – HimBromBeere

答えて

4

AllthoughのAND&&演算子を使用して、私はあなたが求めているオペレータが||&&でもないことを指摘したいと思います。実際にあなたが求めているものを実際に実行する演算子は&です(そしてあなたが誤って使用しているのは|です)。

そして、違いは何ですか? ||および&&は、短絡オペレータです。どういう意味ですか?つまり、オペレータの右側にあるものはとなり、左側がtrueの場合はと評価されます。 `||

public bool True() 
{ 
    Console.WriteLine("True called."); 
    return true; 
} 

public bool False() 
{ 
    Console.WriteLine("False called."); 
    return false; 
} 

var b1 = False() && True(); //b1 will be false and "False called." will be 
          //printed on the console. 

var b2 = False() & True(); //b2 will be false and "False called. True called." 
          //will be printed on the console. 
3

andが必要ですが、orを使用しました。

+2

明らかに、これらのオペレータがどのくらい正確に動作するかは、OPにはあまり明確ではありません。これについての少しの明確化は実際に答えを高めるでしょう。 –

2

(意味 'と')使用&&

||手段 'や'

+2

明らかに、これらの演算子がどのくらい正確に動作するかは、OPにはあまり明確ではありません。これについての少しの明確化は本当に答えを増強するでしょう –

3

私が間違っているオペランドを使用していますか?

はいです。

あなたは条件がすべてである場合にのみtrueになりますAND&&オペレータを必要としています。

あなたは条件の一つは、であっても、本当のあなたを与えるだろうOR||演算子を使用しています。

他のすべての答えが正しい代わりOR||