if(x++>4 & ++y>5) 在这里其实你比较容易混淆。其实你这个if里面的语句x++并没有执行,因为x++>4 & ++y>5的值为false,但是执行了这一个判断后,x的值就已经为5了,y的值也变成了6。你看一下,下面的代码你就会明白了。
{
x++;
}
public class Ittext{
public static void main(String[] args) {
int x = 4;
int y = 5;
boolean b=x++>4 & ++y>5;
if(b) /*这里的&这个和&&有什么区别 区别是: 当把&改成&&结果不同,其实它们的区别很简单:&代表无论&符号左边的逻辑运算时true,还是false你都要运算&符号右边的逻辑运算;而&&则不同,只要&&符号左边的逻辑运算值为false,那么就不用再运算&&符号右边的值,直接返回false。
在实际的这种逻辑运用中一般不会用&运算符,而是使用&&运算符,因为他更为高效。*/
{
x++;
}
System.out.println("b="+b);
System.out.println("x=" + x + ",y=" + y);
}
} |