What is the difference between the | and || or operators?我一直在or表达式中使用 就像 例如:
如果条件1为真,则不检查条件2和3。
这将检查条件2和3,即使1已经为真。由于您的条件可能是非常昂贵的功能,您可以通过使用它们获得良好的性能提升。 有一个大警告,空引用或类似的问题。例如:
如果class为空,则if语句将在 但是,没有人使用单个 不过,还有第二种使用 ||是逻辑或运算符。听起来你基本上知道那是什么。它用于条件语句,如if、while等。
如果Condition1或Condition2为true,则计算结果为true。 |是按位或运算符。它用来操作两个数字。您可以分别查看每个数字的每个位,如果其中一个位在至少一个数字中是1,那么得到的位也将是1。以下是几个例子:
希望这是有道理的。 因此,为了回答最后两个问题,我不会说除了"知道两个操作符之间的区别"之外还有任何警告。它们不能互换,因为它们做了两个完全不同的事情。 一个是"位或"。
另一个是逻辑或。
好问题。这两个操作符在php和c中工作相同。 |是位或。它将按位比较两个值。例如1101 0010=1111。这在使用位选项时非常有用。例如,read=01(0x01)write=10(0x02)read-write=11(0x03)。一个有用的例子是打开文件。一个简单的例子是:
||是逻辑或。这是大多数人根据自己的真实性来思考或比较两种价值观的方式。我要去商店,否则我要去商场。这是代码中最常用的一个。例如。
php资源:http://us3.php.net/language.operators.bitwise C资源:http://msdn.microsoft.com/en-us/library/kxszd0kx(vs.71).aspx http://msdn.microsoft.com/en-us/library/6373h346(vs.71).aspx Java中的简单示例
输出:
&;-(条件1和条件2):检查两种情况,即使第一种情况为假 &;&;-(条件1&;条件2):如果情况1,不必检查第二个情况是假的 &;&;-运算符将使代码运行更快,很少使用专业的代码 |-(条件1条件2):检查两种情况,即使情况1为真 ||-(条件1条件2):如果是第一种情况,不需要检查第二种情况一个是真的 ||-操作员将使您的代码运行更快,很少使用专业 根据它们的数学定义,或和是二元运算符;它们验证lhs和rhs条件,与和&;类似。 ||以及&;更改或和运算符的属性,方法是在lhs条件未满足时停止它们。 单管是按位运算符之一。 维基百科:
单管""是"位"或,仅当您知道自己在做什么时才应使用。双管""是逻辑或,可用于逻辑语句,如"x==0 x==1"。 下面是按位"或"的示例:如果a=0101,b=0011,则a b=0111。如果您处理的逻辑系统将任何非零视为真,则按位或将以与逻辑或相同的方式操作,但它的对应项(按位和,"&;")将不会。另外,按位或不执行短路评估。 运算符执行其两个操作数的按位"或"运算(意味着两侧必须计算为"假"才能返回"假"),而运算符仅在需要时计算第二个运算符。 http://msdn.microsoft.com/en-us/library/kxszd0kx(vs.71).aspx http://msdn.microsoft.com/en-us/library/6373h346(vs.71).aspx ||(两个管道)通常是逻辑或,而(一个管道)是二进制或。从我的头顶上看,我想不出任何时候这两者之间的差别会是多么大(除了当你把结果分配给其他东西的时候)。但是我相信其他人会有一个重要的情况。 编辑:哇,在我写这篇文章的时候,还有六个答案。 单个管道()是按位或运算符。 两个管道()是逻辑或运算符。 它们不能互换。 位()对逻辑()!把逻辑看作Java中的可比较对象,比较一些可区分的"部分",而位运算符查看这些对象,而不是看它们是否是视觉孪生(如逻辑DO),而是做一个DNA样本,并查看0和1。 |