先看下运算的代码:
boolean test3=true||true&&false;
boolean test5=false&&true||true
System.out.println("test3="+test3);
System.out.println("test5="+test5);
是谁像我一样把 test3 算成 false的?
结果:
test3=true
test5=true
下面来解释下:
大家都知道短路的说法吧。
1.逻辑与(&&),如果第一个操作数为false,那么结果肯定false,所以在这种情况下,将不会执行逻辑与后面的运算了,即发生了短路。
2.逻辑或(||),如果第一个操作数为ture,那么结果肯定是ture,所以在这种情况下,将不会执行逻辑与后面的运算了,即发生了短路。
关于短路注意:
一旦能够明确无误地确定整个表达式的值,就不会再计算表达式剩余的部分了。注意一定要是明确无误地确定整个表达式的值才会短路。
像上面的情况:既有&&又有||这个时候就不会短路,而是按照优先级进行运算。&&是先于||所以&&的先运算,而局部运算也会走短路逻辑。
例如:
boolean test2=false&&5/0>0||false;(结果为:test2=false)
5除以0 ,明显被除数为0会报错,而此时运行确没有报错,就是因为逻辑与短路。
而反过来
boolean test2=true&&5/0>0||false;
就会报被除数为0错误。
总结:
逻辑运算符运算是,如果明确无误地确定整个表达式的值,就会走“短路”逻辑,而如果比较复杂的话就会按照优先级进行运算,而局部运算也会用到短路逻辑。
运算符优先级参考:
http://blog.csdn.net/xiaoli_feng/article/details/4567184
- 浏览: 263725 次
- 性别:
- 来自: 北京
最新评论
-
liujunhao225:
jsoup 不是jsonp,请注意
使用JSONP 解析HTML网页。 -
ding2wife:
通过此文章终于知道他是干嘛的啦
android的armeabi和armeabi-v7a -
lkl:
真好的文章
android的armeabi和armeabi-v7a -
saturn54:
这真是好文章
android的armeabi和armeabi-v7a -
zhengfuzhou:
你好,咨询下,用google带的签名来签名,是哪个工具可以签名 ...
如何使Android应用程序获取系统权限
相关推荐
逻辑运算符 &&、 ||、 ! 注意:逻辑计算支持短路操作 表达多个条件之间的关系。例如年龄大于等于18并且年龄小于65 &&:与运算,含义是两个条件必须同时成立,可以翻译为并且 ||:或运算,含义是两个条件中成立一个...
java逻辑运算符 纤细的解释 代码例子
学习电子方面知识,C语言是非常主要的一门编程语言之一,如下简单总结下运算符。 逻辑运算符用来求某个条件式的逻辑值。... 逻辑非(NOT) 逻辑表达式:用逻辑运算符将关系表达式或逻辑量连接起来。逻辑表......
将逻辑运算符显示在WinCC动态值域对话框中,可以知道如何在对象属性界面设置与或非等逻辑运算符。
逻辑运算先掌握各种运算,注意运算符的级别比较,做题是要细心。
非正常情况逻辑运算符运算顺序 赋值运算符 一元运算符 运算优先级 总结 算术运算符 非正常情况1: 有特殊值字面量参与的运算非正常情况2: 其他类型的数据参与数学运算。 非正常情况1: 有特殊值字面量参与的运算 ...
Wincc数学运算符逻辑运算符
掌握逻辑运算符的运算规则 能使用逻辑运算符组合条件 已知一个三角形的三条边长已经存放在变量a,b,c中,如何确定这个三角形能成立呢?条件如何写? 引入 a c b a+b>c , a+c>b , b+c>a a+b>c && a+c>b && b+c>a ...
Java中位运算符在操作逻辑型数据时与逻辑运算符&&、||、!不同的测试,测试结果逻辑运算符左侧的表达式会进行运算、右侧的不会,非运算一定会变;位运算符两侧都会变
Java中的逻辑运算符包括逻辑与&,逻辑或|,逻辑非!逻辑异或^,除此之外还有几个比较相似的&&短路与,||短路或。 那么这几个逻辑运算符到底有什么意思呢?下面我们来看看 首先看逻辑与&的用法,只有两个都为真...
java代码-逻辑运算符
2、 if语句的3种形式: 1) if(表达式)语句 如if(x>y)printf(“%d”,x); 2) if(表达式)语句1else语句2 如if(x>y) printf(“%d”,x); else printf(“%d”,y); 3)if(表达式1)语句1 else if(表达式2)语句2 ...
java代码-日常练习7,逻辑运算符
matlab 1.逻辑运算的应用 2.代替 elseif 提高运算速度
布尔逻辑运算符的运算数只能是布尔型。而且逻辑运算的结果也是布尔类型(见表4-5 )。 表4-5 布尔逻辑运算符及其意义 运算符 含义 & 逻辑与 逻辑或 ^ 异或 短路或 && 短路与 ! 逻辑反 &= 逻辑与赋值(赋值的简写形式...
逻辑运算符对操作数进行布尔运算,经常和关系运算符一样配合使用。逻辑运算符将多个关系表达式组合起来组成一个更复杂的表达式。逻辑运算符分为逻辑非’!’、逻辑与’&&’、逻辑或’||’3种,本文将介绍这三种逻辑...
Java运算符主要分为四类:算术运算符、关系运算符、逻辑运算符和位运算符,这些运算符用于实现不同的数学和逻辑功能。 算术运算符介绍 算术运算符包括加、减、乘、除和取余等基本运算,它们可以对整数、浮点数和字节...
Java位运算符详解[文].pdf
为何这个代码输出结果是在同一行的呢?而书本却是两行。
java位运算例子,一看就懂,包含符号介绍,每个符号都有相应的例子。