初心者の質問。式A f Bの値を計算する方法、ここでf-二項関数ORまたはAND?
条件演算子&&と||には区別があります。およびブール演算子&および|。主に、優先順位(演算子が最初に評価される)と&&および||の違いです。 「エスケープ」しています。これは、次のようなシーケンスであることを意味します...
cond1 && cond2 && cond3
Cond1がfalseの場合、cond2とcond3のどちらも評価されません。コードは、値に関係なく式がtrueにならないことを正しく想定しているためです。同様に...
cond1 || cond2 || cond3
Cond1がtrueの場合、cond2もcond3も評価されません。式が値に関係なくtrueでなければならないためです。
ビット単位の対応する&と|逃げていません。
お役に立てば幸いです。
論理ORは||
、論理ANDは&&
です。否定NOTが必要な場合は、式の前に!
を付けます。
例:
X = (A && B) || C || !D;
次に、AとBのいずれかが真の場合、またはCが真の場合、またはDが真でない場合(つまりfalse)、Xは真になります。
ビット単位のAND/OR/NOTが必要な場合は、&
、|
、および~
を使用します。ただし、ブール値/真理値を扱う場合は、それらを使用したくないでしょう。ビット単位演算の動作方法などにより、短絡評価は提供されません。
if(A == "haha" && B == "hihi") {
//hahahihi?
}
if(A == "haha" || B != "hihi") {
//hahahihi!?
}
ビット単位の操作に興味がある場合は、簡単なチュートリアルをご覧ください: http://weblogs.asp.net/alessandro/archive/2007/10/02/bitwise-operators-in-c-or-xor- and-amp-amp-not.aspx .bitwise演算は、上記で例示したものと同じ演算を実行しますが、バイナリ表現で動作します(演算は値の個々のビットに適用されます)
論理演算が必要な場合は、答えがすでに与えられています。
これがあなたの質問に答えるかどうかはわかりませんが、たとえば:
if (A || B)
{
Console.WriteLine("Or");
}
if (A && B)
{
Console.WriteLine("And");
}
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