Java中的&(不短路与)

原创 2018年04月15日 10:39:11

      开始学Java,发现了点新东西。。。

      Java中的与逻辑运算符是分类别的,有  短路与(&&) 不短路与(&) 之分, 先说说 短路与 ,我们知道与运算的逻辑规则是与运算的两位操作数必须都是true的情况下才返回true——即: x && y 的 值当且仅当a和b都为true时才返回true。

      那么当x为false时,无论y是true还是false整个与运算表达式(x && y)都返回false。那么y的值就没有计算的必要了。这就是短路与。看下面这个例子:


     2<1返回false,所以f++<3就没有执行,下面的结果也符合情况f为0.整个表达式a的值也为false。那个Dead code也显示了(f++<3)那段代码是没有意义的。这就是短路与。


那么不短路(&)与就好理解了,那就是无论前一个操作数x是true还是false,表达式都会计算y的值然后的出总表达式的结果。

看下图:


    (2<1)的值是false,但f的结果变成1了,所以(f++<3)还是执行了的。这就是不短路与。然后重点来了,就是位运算与怎么处理呢???没错,这就是Java中 & 的另一个功能, 运算符 & 除了能表示逻辑与中的不短路与, 它还能表示位运算与,至于什么是位运算,就是把两个数按二进制表示对应的每一位都逻辑与(1表示true,0表示false),即1和1得1,1和0得0,0和0得0. 如下图:


  因为3的二进制表示为11,2的二进制表示为10.所以按为与后就得10,即2.故结果为2.

版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/Jason_crawford/article/details/79946954

组合语言之艺术3

 第二章    准备工作 第一节  系统一、系统之选择    只因真正了解电脑的人太少,迷信名气的结果,使得 IBM PC/AT占有了市场。为求电脑普及应用,我们唯有因陋就简,针对 IBM PC/AT...
  • dot99
  • dot99
  • 2001-08-04 22:19:00
  • 1344

java &&与||短路的详解

java &&与||短路的详解  (2012-02-03 21:43:59) 转载▼ 标签:  it   短路运算符就是我们常用的“&&”、“||”,一般称为“条件操作”。...
  • u013521220
  • u013521220
  • 2017-06-30 17:01:56
  • 278

JAVA中&&和&、||和|(短路与和逻辑与、短路或和逻辑或)的区别

&&逻辑与 也叫做短路与 因为只要当前项为假,它就不往后判断了,直接认为表达式为假 ||逻辑或 也叫做短路或 因为只要当前项为真,它也不往后判断了,直接认为表达式为真...
  • websph
  • websph
  • 2010-06-13 15:45:00
  • 29889

Java 短路运算符和非短路运算符

短路运算符就是我们常用的“&&”、“||”,一般称为“条件操作”。class Logic{    public ststic void main(String[] args){        int ...
  • rosen
  • rosen
  • 2004-12-05 18:46:00
  • 6975

JAVA中&&和&、||和|(短路与和逻辑与、短路或和逻辑或)的区别?

问题一: JAVA中&&和&、||和|(短路与和逻辑与、短路或和逻辑或)的区别? 首先名称是不同的 &&逻辑与  ||逻辑或  它们都是逻辑运算符 & 按位与  | 按位或  它们都...
  • Solo_two
  • Solo_two
  • 2016-05-31 10:52:03
  • 11293

java中的短路机制

最近在看think in java 看到一个短路机制还是挺有意思的 之前java课上也没有提到过 程序如下:package learningtest; public class test { ...
  • wyb0618
  • wyb0618
  • 2017-07-12 14:09:13
  • 251

Java中的短路运算符与非短路运算符

在Java中短路运算符指的是"&&"(与) 和"||"(或) ,非短路运算符指的是"&" 和"|".   1.1短路运算符:顾名思义,短路运算符具有短路功能.     |-如果 "&" 运算符的第...
  • lqqwonderful
  • lqqwonderful
  • 2017-05-27 10:31:39
  • 183

关于java逻辑运算符的短路特性

1.逻辑与(&&),如果第一个操作数为false,那么结果肯定false,所以在这种情况下,将不会执行逻辑与后面的运算了,即发生了短路。2.逻辑或(||),如果第一个操作数为ture,那么结果肯定是t...
  • yfisaboy
  • yfisaboy
  • 2010-12-16 13:28:00
  • 2847

Java关于短路与&&的巧妙运用

来自于《剑指Offer》 如题:求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。解析:题上所说不能用平时常用的...
  • Ink4T
  • Ink4T
  • 2017-08-13 22:25:34
  • 6350

Java中的短路效应

对于逻辑运算符&& 和 ||,学过discrete Math的同学都知道,一个是与,一个是或。在Java中它们存在短路效应。 对于a && b,只有当a和b同时为true时,整个表达式才为t...
  • czjuttsw
  • czjuttsw
  • 2013-01-10 18:19:29
  • 3271
收藏助手
不良信息举报
您举报文章:Java中的&(不短路与)
举报原因:
原因补充:

(最多只允许输入30个字)