见代码示例:
不短路或(|):
public class A
{
public static void main(String[] args)
{
var a=5;
var b=10;
//对a > 4和 b++ > 10求或运算
if(a>4|b++>10)
{
//输出a的值是5,b的值是11
System.out.print("a的值是:"a",b的值是"b);
}
}
运行上述代码发现输出a的值等于5,b的值等于11.
短路或(||):
public class B
{
public static void main(String[] args)
{
var a=5;
var b=11;
//对a > 6和 b++ > 10求或运算
if(a>4||b++>10)
{
//输出a的值是5,b的值是10
System.out.print("a的值是:"a",b的值是"b);
}
}
运行上述代码发现输出a的值等于5,b的值等于10.
总结:
|总会计算前后两个操作数,而||先计算左边的操作数,如果左边的操作数为ture则不再对后面的操作数进行计算。