新手问题。如何计算公式 A f B 的值,其中 f 是二元函数 OR 或 AND?
条件运算符&&和||与布尔运算符&和|之间存在区别。主要区别在于优先级(哪些运算符首先被计算),以及&&和||是“短路”的。这意味着,如果序列如下...
cond1 && cond2 && cond3
如果cond1为假,那么既不会评估cond2也不会评估cond3,因为代码正确地假设不管它们的值如何,表达式都不能为真。同样地...cond1 || cond2 || cond3
如果cond1为真,则无论cond2和cond3的值是什么,表达式都必须为true,因此不会对它们进行评估。逻辑或是||
,逻辑与是&&
。
如果你需要取反操作NOT,请在表达式前添加!
。
例如:
X = (A && B) || C || !D;
当A和B都为真时或C为真或D不为真(即假)时,X将为真。
如果你想要进行按位AND/OR/NOT操作,你会使用&
、|
和~
。但是,如果你处理的是布尔/真值类型的数据,你不应该使用它们。这是因为按位运算的方式导致了它们无法提供短路计算。
if(A == "haha" && B == "hihi") {
//hahahihi?
}
if(A == "haha" || B != "hihi") {
//hahahihi!?
}
我不确定这是否回答了你的问题,但是举个例子:
if (A || B)
{
Console.WriteLine("Or");
}
if (A && B)
{
Console.WriteLine("And");
}
&&
的评估,此时它将无法通过第二个语句。 - JamesConsole.WriteLine()
执行线程中止,否则这不是真的,我不知道? :) - Nick Craver使用'&&'表示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
如果您感兴趣的是位运算,请查看此处的简短教程:http://weblogs.asp.net/alessandro/archive/2007/10/02/bitwise-operators-in-c-or-xor-and-amp-amp-not.aspx。 位运算执行与上面示例相同的操作,只是它们使用二进制表示(该操作应用于值的每个单独位)
如果您想要逻辑操作的答案,已经给出。
&& 运算符只有在两个操作数都为真时才返回真,这意味着
bool and(bool b1, bool b2)]
{
if(b1==true)
{
if(b2==true)
return true;
}
return false;
}
|| 它的操作返回 true,如果一个或两个操作数为 true,这意味着
bool or(bool b1,bool b2)
{
if(b1==true)
return true;
if(b2==true)
return true;
return false;
}
如果你写
y=45&&34//45 binary 101101, 35 binary 100010
最终结果为:
y=32// in binary 100000
&
)是正确的,但显然不适用于布尔与。 - ThiefMaster以上有很多答案,我会尝试另一种方式:
如果你正在寻找位运算,只需使用以下其中一个符号:
3 & 1 //==1 - 与 4 | 1 //==5 - 或