Java逻辑运算符:短路与(&&)
案例1:
package Demo1;
public class TestSign{
public static void main(String[] args){
int x=8;
int y=9;
System.out.println((++x==y)&&(++x!=y));
/*解析:
首先x=8,y=9,进入第一行输出语句,
括号内从左向右依次计算,首先判断++x的值和y的值是否相等
明显++x=9,y=9,因此++x==y;
但是左边为true还不足以判断整体为true
再看右边的(++x!= y)
此时,经过(++x=y)的计算,x的值已经变为了9,
进入++x的值与y值的比较:x再次++,它的值变为了10,与y的值9不相等
因此(++x!= y)为true
逻辑运算符&&(与)左右都为真,所以整体为真,输出true
下一行输出语句中,将经过两次++的x的值输出得到10
*/
System.out.println(x);
}
}
案例2:
public class TestSign{
public static void main(String[] args){
int x=8;
int y=9;
System.out.println( (++x!=y)&&(++x==y));
System.out.println(x);
/*解析:
首先x=8,y=9,进入第一行输出语句,
括号内从左向右依次计算,首先判断++x的值和y的值是否相等,
明显++x=9,y=9,因此++x==y,左边的表达式值为false,所以整体结果为false
再进入第二行的输出语句中,
x的值经过一次++之后变为了9,这里将它输出,结果为9
*/
}
}