>>在上面的这两个例子中<<
在哪里?

解决方案 »

  1.   

    &&是比较运算符,&是运算符
      

  2.   

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

  3.   

    && 运算符请参见
    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
      

  4.   

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