关于短路运算符的问题:
请详细说明|与||的区别, &与&&的区别, 需要举具体例子出来, 如果有参考网址也可以发上来, 谢谢!

解决方案 »

  1.   

    | & 是位运算符
    || && 逻辑运算符
    具体可以看下这个例子http://91in.bokee.com/2782991.html
      

  2.   

    class A1 
    {
        public static void main(String[] args) 
        {
            int x = 0;
            int y = 1;
            if (x != 0 && (y/x==1))//&& 换成 & 试试
            {
                System.out.println("x!=0");
            }
        }
    }
    //换成&后编辑就出错误了 为什么呢 因为&&是一个短路语句
    //当前面的x != 0(我们知道x=0)&&就不执行后面的语句了
    //(&&要求条件全部 既然前面已经不满足了 后面的就没必要执行了 
    //而&不同 它不管三七二十一就要吧语句全部执行)
    //而上面的问题是为什么呢 我们知道除数不能为0 而y/x  x=0 所以出错误
    //  或符号 || 和 |的关系  (和上面是一样的)
    //
    //& | ^在二进制运算是如何运算的:
    //我们知道二进制数只有0和1
    //& 当参加运算的两位都为1 结果才为1 否则为0
    //| 当参加运算的两位都为0 结果才为0 否则为1
    //^ 当参加运算的两位不相同 结果才为1 否则为0
    博客地址http://www.cnblogs.com/kao331431214/archive/2009/01/10/1373472.html
      

  3.   

    | &  :短路
    || &&:非短路
      

  4.   

    & 在两边是数值类型时充当的是位与运算符。当两边是布尔类型时它充当的是布尔与运算符。布尔与(&)逻辑与(&&)运算结果是一样的,仅有一些小的差别:1,前者为非短路运算,后者为短路运算;
    2,前者的运算优先级别高于后者;
    3,前者可以和等号(=)组成布尔与赋值(&=)运算符,而后者不行。类似地,还拥有布尔异或(^)布尔或(|)这两个与布尔与(&)统称为布尔逻辑运算符