14

新手问题。如何计算公式 A f B 的值,其中 f - 二元函数 OR 或 AND?

4

8 回答 8

22

条件运算符 && 和 || 之间有区别 以及布尔运算符 & 和 |。主要是优先级的差异(首先评估哪些运算符)以及 && 和 || 正在“逃避”。这意味着这是一个序列,例如...

cond1 && cond2 && cond3

如果 cond1 为假,则 cond2 或 cond3 都不会被计算,因为代码正确地假设无论它们的值是什么,表达式都不能为真。同样地...

cond1 || cond2 || cond3

如果 cond1 为真,则 cond2 或 cond3 都不会被计算,因为无论它们的值是什么,表达式都必须为真。

按位对应的 & 和 | 没有逃跑。

希望有帮助。

于 2010-05-17T10:21:16.597 回答
18

逻辑 OR 是||,逻辑 AND 是&&。如果您需要否定 NOT,请在表达式前加上!.

例子:

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

那么当 A 和 B 为真或 C 为真或 D 不为真(即假)时,X 将为真。

如果您想要按位 AND/OR/NOT,您将使用&,|~. 但是,如果您正在处理布尔值/真值,您不想使用这些值。例如,由于按位运算的工作方式,它们不提供短路评估。

于 2010-05-17T10:16:35.817 回答
1
if(A == "haha" && B == "hihi") {
//hahahihi?
}

if(A == "haha" || B != "hihi") {
//hahahihi!?
}
于 2010-05-17T10:18:18.007 回答
0

使用 '&&' 表示 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
于 2010-05-17T10:22:18.920 回答
0

我不确定这是否能回答您的问题,但例如:

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

if (A && B)
{
    Console.WriteLine("And");
}
于 2010-05-17T10:19:01.210 回答
0

如果您对按位运算感兴趣,请在此处查看简短教程:http ://weblogs.asp.net/alessandro/archive/2007/10/02/bitwise-operators-in-c-or-xor-and-amp- amp-not.aspx .bitwise 操作执行与上面示例相同的操作,它们仅适用于二进制表示(该操作适用于值的每个单独的位)

如果你想要逻辑运算答案已经给出。

于 2010-05-17T11:29:24.817 回答
-1

&& 只有当两个操作数都为真时,它的操作才返回真,这意味着

bool and(bool b1, bool b2)]
{
 if(b1==true)
 {
   if(b2==true)
    return true;
 }
 return false;
}

|| 如果一个或两个操作数为真,则它的操作返回真,这意味着

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

因此,我上面写的那个被用于每一对位

于 2010-05-17T10:48:09.197 回答
-1

上面有很多答案,我会尝试不同的方式:

如果您正在寻找按位运算,请仅使用以下标记之一:

3 & 1 //==1 - 和 4 | 1 //==5 - 或

于 2010-05-17T14:13:16.570 回答