| | 和 | 都是表示“或”,区别是 | | 只要满足第一个条件,后面的条件就不再判断,而|要对所有的条件进行判断。所以我们常称 | | 为"短路或"。
example:
//测试|
public class Test{
public static void main(String[] args){
int i = 0;
if(1 == 1 | ++i > 0){
System.out.println("结果为真" + i);
}
}
}
结果如下:结果为真 1
而 | | 的结果为:
//测试||
public class Test{
public static void main(String[] args){
int i = 0;
if(1 == 1 || ++i > 0){
System.out.println("结果为真" + i);
}
}
}
结果为真0
&与&&的区别也在于&&为"短路与",如进行判断时如&&左边的条件为false,直接返回false,右边的条件不再进行判断。而&即使左边的条件为false,也会对右边的条件进行判断,最终返回false。