| 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);
 }
 }
 |