public static void main(String[] args)
{
int x=0;
int y=3;
if(x!=0 && y==y/x)
System.out.println("y = "+y);
}
所以该输出语句不运行,因为左边x!=0是false,if语句根本进不来,右边同时也不运算
逻辑或| 表达式两边都参与运算
短路或|| 当左边为true,右边就不再参与运算
int x = 0;
int y = 3;
if (x > 6 || y > 1 ){
System.out.println("hello");
}
因为x > 6是false,所以右边 y > 1还会继续运行,if语句进来,所以最后输出了hello.
最后总结一点:
短路与&& 如果左边是false,右边就不运算
短路或|| 当左边为true,右边就不再参与运算
以上是两种情况是反的,所以需要注意下 作者: 张頔 时间: 2012-6-3 22:58
&&只要判断到有一个是假的后边的就不会再判断
|| 会一直判断到一个真的 后边的也不会再判断作者: 胡团乐 时间: 2012-6-3 22:58
public static void main(String[] args) {
int x = 0;
int y = 3;
if (x > 6 || y > 1 ){
System.out.println("hello");
} 这个属于短路 false || true 为true