&(逻辑与) 、|(逻辑或)、&&(条件与) 、||(条件或)

  &(逻辑与) 、|(逻辑或)、&&(条件与) 、||(条件或)

在C#中有:&(逻辑与) 、|(逻辑或)、&&(条件与)   、||(条件或)   、这几个操作数,  
  在上面的这两个例子中,逻辑与条件有什么区别吗?在实际应用中又应该注意什么呢??

NO.1   作者: yellowwee

&(逻辑与) 、|(逻辑或)是一般的用法,&&(条件与)   、||(条件或)称为短路的用法。就是当前一个条件满足后,后一个条件就不判断了!  
   
  x   &&   y  
  如果   x   为   false,则不计算   y。这被称作为“短路”计算。  
   
 

NO.2   作者: yellowwee

&&   运算符请参见  
  C#   运算符   |   7.11   条件逻辑运算符  
  条件“与”运算符   (&&)   执行布尔操作数的逻辑“与”运算,但如有必要,只计算第二个操作数。  
   
  expr1   &&   expr2  
  此处:    
   
  expr1    
  一个表达式。    
  expr2    
  一个表达式。    
  备注  
  操作  
   
  x   &&   y  
  对应于操作  
   
  x   &   y  
  不同的是,如果   x   为   false,则不计算   y。这被称作为“短路”计算。  
   
  不能重载条件“与”运算符,但规则逻辑运算符和运算符   true   及   false   的重载在某些限制条件下也被视为条件逻辑运算符的重载。  
   
  示例  
  在下面的示例中,请观察使用   &&   的表达式只计算第一个操作数。  
   
  //   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  
 

NO.3   作者: CForce

int   i=0;  
  if(5>4   ||   i++<3)  
  Console.WriteLine(i.ToString());  
   
   
  int   i=0;  
  if(5>4   |   i++<3)  
  Console.WriteLine(i.ToString());  
   
  运行代码看看你就明白了

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值