&(逻辑与) 、|(逻辑或)、&&(条件与) 、||(条件或) >>在上面的这两个例子中<<在哪里? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 &&是比较运算符,&是运算符 &(逻辑与) 、|(逻辑或)是一般的用法,&&(条件与) 、||(条件或)称为短路的用法。就是当前一个条件满足后,后一个条件就不判断了!x && y如果 x 为 false,则不计算 y(因为不论 y 为何值,与操作的结果都为 false)。这被称作为“短路”计算。 && 运算符请参见C# 运算符 | 7.11 条件逻辑运算符条件“与”运算符 (&&) 执行布尔操作数的逻辑“与”运算,但如有必要,只计算第二个操作数。expr1 && expr2此处: expr1 一个表达式。 expr2 一个表达式。 备注操作x && y对应于操作x & y不同的是,如果 x 为 false,则不计算 y(因为不论 y 为何值,与操作的结果都为 false)。这被称作为“短路”计算。不能重载条件“与”运算符,但规则逻辑运算符和运算符 true 及 false 的重载在某些限制条件下也被视为条件逻辑运算符的重载(请参阅 7.11.2 用户定义的条件逻辑运算符)。示例在下面的示例中,请观察使用 && 的表达式只计算第一个操作数。// cs_operator_logical_and.csusing System;class Test { static bool fn1() { Console.WriteLine("fn1 called"); return false; } static bool fn2() { Console.WriteLine("fn2 called"); return true; } public static void Main() { Console.WriteLine("regular AND:"); Console.WriteLine("result is {0}", fn1() & fn2()); Console.WriteLine("short-circuit AND:"); Console.WriteLine("result is {0}", fn1() && fn2()); }}输出regular AND:fn1 calledfn2 calledresult is Falseshort-circuit AND:fn1 calledresult is False int i=0;if(5>4 || i++<3)Console.WriteLine(i.ToString());int i=0;if(5>4 | i++<3)Console.WriteLine(i.ToString());运行代码看看你就明白了 如何提高ODBC查询文本文件的效率? 递归读取子集,拼接成下列字符串 winform MSN2009能否使用Messenger API Type Library? 问题出在那里了? 请教各位高手!!!!求一简单正则。 rdlc报表的数据源是dataset怎么办 100分拜求 急急急急急!引用程序集问题! 求助,如何在TextBox接收到数据后将数据传到数据库中? using System.Management 不能用是怎么回事? 这是.net的bug还是?我狂晕,死啦
如果 x 为 false,则不计算 y(因为不论 y 为何值,与操作的结果都为 false)。这被称作为“短路”计算。
C# 运算符 | 7.11 条件逻辑运算符
条件“与”运算符 (&&) 执行布尔操作数的逻辑“与”运算,但如有必要,只计算第二个操作数。expr1 && expr2
此处: expr1
一个表达式。
expr2
一个表达式。
备注
操作x && y
对应于操作x & y
不同的是,如果 x 为 false,则不计算 y(因为不论 y 为何值,与操作的结果都为 false)。这被称作为“短路”计算。不能重载条件“与”运算符,但规则逻辑运算符和运算符 true 及 false 的重载在某些限制条件下也被视为条件逻辑运算符的重载(请参阅 7.11.2 用户定义的条件逻辑运算符)。示例
在下面的示例中,请观察使用 && 的表达式只计算第一个操作数。// cs_operator_logical_and.cs
using System;
class Test
{
static bool fn1()
{
Console.WriteLine("fn1 called");
return false;
} static bool fn2()
{
Console.WriteLine("fn2 called");
return true;
} public static void Main()
{
Console.WriteLine("regular AND:");
Console.WriteLine("result is {0}", fn1() & fn2());
Console.WriteLine("short-circuit AND:");
Console.WriteLine("result is {0}", fn1() && fn2());
}
}
输出
regular AND:
fn1 called
fn2 called
result is False
short-circuit AND:
fn1 called
result is False
if(5>4 || i++<3)
Console.WriteLine(i.ToString());
int i=0;
if(5>4 | i++<3)
Console.WriteLine(i.ToString());运行代码看看你就明白了