今天开始又来学习了java,之前学习了一点入门,并不深。从今天开始转战java,今天遇到了java中逻辑运算符和位运算符,现在来谈谈里面两个运算符的异同点:
一、&(与)与&&(短路与)
(1)相同之处:在程序中,当所有表达式的判断结果为true时,则结果才为真,返回true,否则,只要有其中一个表达式为假,结果都为false。
(2)不同之处:
a.& 当前面的表达式为假的时候,程序还是会执行后面的表达式,再得出false结果。
b.&& 当前面的表达式为假时,程序会停止执行后面的表达式,结果是false。
例如:
public class HomeWork1{
public static void main(String[] args){
int x=1,y=1;
if(x++==2 && ++y==2){
x=7;
}
System.out.println("x="+x+",y="+y);
}
}
结果为x=2;y=1;
二、|(或)与||(短路或)
(1)相同之处:在程序中,当有其中一个表达式为true时,结果都为true;
(2)不同之处:
a. | 当遇到类型为true的表达式时,程序还会继续向后走, 最后结果为true。
b. ||当遇到类型为true的表达式时,程序不会向下走,但是最终结果是true。
例如:
public class HomeWork1{
public static void main(String[] args){
int x=1,y=1;
if(x++==1 || ++y==1){
x=7;
}
System.out.println("x="+x+",y="+y);
}
}
结果为x=7;y=2;