web-dev-qa-db-ja.com

OR、AND演算子

初心者の質問。式A f Bの値を計算する方法、ここでf-二項関数ORまたはAND?

12
Alexry

条件演算子&&と||には区別があります。およびブール演算子&および|。主に、優先順位(演算子が最初に評価される)と&&および||の違いです。 「エスケープ」しています。これは、次のようなシーケンスであることを意味します...

cond1 && cond2 && cond3

Cond1がfalseの場合、cond2とcond3のどちらも評価されません。コードは、値に関係なく式がtrueにならないことを正しく想定しているためです。同様に...

cond1 || cond2 || cond3

Cond1がtrueの場合、cond2もcond3も評価されません。式が値に関係なくtrueでなければならないためです。

ビット単位の対応する&と|逃げていません。

お役に立てば幸いです。

22
Martin Randall

論理ORは||、論理ANDは&&です。否定NOTが必要な場合は、式の前に!を付けます。

例:

X = (A && B) || C || !D;

次に、AとBのいずれかが真の場合、またはCが真の場合、またはDが真でない場合(つまりfalse)、Xは真になります。

ビット単位のAND/OR/NOTが必要な場合は、&|、および~を使用します。ただし、ブール値/真理値を扱う場合は、それらを使用したくないでしょう。ビット単位演算の動作方法などにより、短絡評価は提供されません。

17
ThiefMaster
if(A == "haha" && B == "hihi") {
//hahahihi?
}

if(A == "haha" || B != "hihi") {
//hahahihi!?
}
1
Younes

ビット単位の操作に興味がある場合は、簡単なチュートリアルをご覧ください: http://weblogs.asp.net/alessandro/archive/2007/10/02/bitwise-operators-in-c-or-xor- and-amp-amp-not.aspx .bitwise演算は、上記で例示したものと同じ演算を実行しますが、バイナリ表現で動作します(演算は値の個々のビットに適用されます)

論理演算が必要な場合は、答えがすでに与えられています。

0
Olorin

これがあなたの質問に答えるかどうかはわかりませんが、たとえば:

if (A || B)
{
    Console.WriteLine("Or");
}

if (A && B)
{
    Console.WriteLine("And");
}
0
Paul Michaels

ANDに「&&」を使用し、「||」を使用しますORの場合、たとえば:

bool A;
bool B;

bool resultOfAnd = A && B; // Returns the result of an AND
bool resultOfOr = A || B; // Returns the result of an OR
0
Ben