&和&&区别

Posted techsingularity

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了&和&&区别相关的知识,希望对你有一定的参考价值。

1)&和&&都可以用作逻辑与的运算符,表示逻辑与(and)。

当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。

           //a为真,b为假,输出两者其一为假进入           
            bool a = true;
            bool b = false;
            if (a & b)
            {
                Console.WriteLine("两者皆为真进入");
            }
            else
            {
                Console.WriteLine("两者其一为假进入");
                Console.Read();
            }
         //a为假,b为真,输出两者其一为假进入           
           bool a = false;
            bool b = true;
            if (a & b)
            {
                Console.WriteLine("两者皆为真进入");
            }
            else
            {
                Console.WriteLine("两者其一为假进入");
                Console.Read();
            }
          //a为假,b为假,输出两者其一为假进入           
           bool a = false;
            bool b = false;
            if (a & b)
            {
                Console.WriteLine("两者皆为真进入");
            }
            else
            {
                Console.WriteLine("两者其一为假进入");
                Console.Read();
            }

  技术图片


 

           //a为真,b为真,输出两者皆为真进入
           bool a = true;
            bool b = true;
            if (a & b)
            {
                Console.WriteLine("两者皆为真进入");
                Console.Read();
            }
            else
            {
                Console.WriteLine("两者其一为假进入");
                Console.Read();
            }

  技术图片 

2)&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,如下示例

          //&无短路,x为1,不符合x=2,但继续执行 
           int x = 1;
            int y = 0;
            if (x ==2 & y++ > 0)
            {
              
            }           
            Console.WriteLine("y初始值为0,无短路后的值为:" + y);
            Console.Read();

技术图片


          //&&短路,x不为2,直接跳出,不执行y++
           int x = 1;
            int y = 0;
            if (x ==2 && y++ > 0)
            {
              
            }           
            Console.WriteLine("y初始值为0,短路后的值为:" + y);
            Console.Read();

技术图片

3)&还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算,来获取该整数的最低4个bit位,例如,0x31 & 0x0f的结果为0x01。

以上是关于&和&&区别的主要内容,如果未能解决你的问题,请参考以下文章

CentOS yum 命令出现 [Errno 14] curl#6 - "Couldn't resolve host ..." 的解决方法(代码片段

如何在 Javadoc 中使用 @ 和 符号格式化代码片段?

modx - 当我在同上片段中使用“&documents =”参数时,分页不起作用

在 HTML 中显示 HTML 片段

为 Blogger 上的博客格式化代码片段 [关闭]

自己定义View时,用到Paint Canvas的一些温故,简单的帧动画(动画一 ,"掏粪男孩Gif"顺便再提提onWindowFocusChanged)(代码片段