日期:2014-05-20  浏览次数:20849 次

有关短路
请问短路是什么意思?能多举点实例讲一下么?谢谢

------解决方案--------------------
你是指短路运算符?
短路运算符就是我们常用的“&&”、“||”,一般称为“条件操作”。


class Logic{public ststic void main(String[] args){int a=1;int b=1;if(a <b && b <a/0){System.out.println( "Oh,That 's Impossible!!! ");}else{System.out.println( "That 's in my control. ");}}} “&&”运算符检查第一个表达式是否返回“false”,如果是“false”则结果必为“false”,不再检查其他内容。“a/0”是个明显的错误!但短路运算“&&”先判断“a <b”,返回“false”,遂造成短路,也就不进行“a/0”操作了,程序会打出 "That 's in my control. "。这个时候,交换一下“&&”左右两边的表达式,程序立即抛出异常“java.lang.ArithmeticException: / by zero”。
class Logic{public ststic void main(String[] args){int a=1;int b=1;if(a==b || b <a/0){System.out.println( "That 's in my control. ");}else{System.out.println( "Oh,That 's Impossible!!! ");}}}

“||”运算符检查第一个表达式是否返回“true”,如果是“true”则结果必为“true”,不再检查其他内容。
“a/0”是个明显的错误!但短路运算“||”先执行“a==b”判断,返回“true”,遂造成短路,也就不进行“a/0”操作了,程序会打出 "That 's in my control. "。这个时候,交换一下“||”左右两边的表达式,程序立即抛出异常“java.lang.ArithmeticException: / by zero”。

------解决方案--------------------
楼上的那些都是运算符和运算符的优先级。。。没有提到短路啊。。。
楼主的短路是什么意思说明白点
------解决方案--------------------
我来讲简单点, 比如条件表达式: (1==2)&&(2==2) 的值需要&&两边都true 才是true, 任何一边为false 他的值都是false. 程序执行的时候是先左边后右边,所以先执行1==2这个判断, 得到false, 这时无论&&右边的值是true还是false,这个表达式都是false了,所以2==2的判断就不需要执行, 相当于跳过了2==2这句 直接得到 (1==2)&&(2==2) 为false 称为短路
其实跟中学物理的短路不是一个意思,应该是 "short cut "的直译, 成为 "捷径 "可能更准些.
------解决方案--------------------
--------◎------------
| |-----| |
| |
| |
--------电池----------

这就是短路
------解决方案--------------------
短路是什么啊?我在学习的时候怎么没听过呢!
------解决方案--------------------
短路就是把电源的正负极连接,你可以回家试一试 :)
------解决方案--------------------
我也没听说过~
HOHO~~
学习一下~
------解决方案--------------------
ytzhsh(醉天涯)

讲的最清楚
------解决方案--------------------
短路就是你的头锈掉了 哈哈!!