java优先级问题

class Kong
{
   public static void main(String args[])
     {
       int x,y;
       x=4;y=6;
       while(x++<y--)
         System.out.println("开始时"+x+" "+y);
       System.out.println("最后x的值是"+x);
     }
}
为什么结果是:
开始时是5  5
最后x值为6呢??

我只说一下x++,y--和++x,--的区别
例如x=4,y=6时;执行x++<y--
是先拿x和y原来的值进行比较,就是4<6成立,
而比较结束后x和y分别进行了++和--操作,值分别变成x=5和y=5了,然后第一次进入while循环打印“开始时是5  5”
然后再判断循环条件,这时是拿x=5和y=5比较结果为假,但是比较完后x和y分别又进行了++和--操作,x=6,y=4;所以才会打印“最后x的值是6”
如果题目是while(++x<--y)那就是先进行++和--操作后的值来判断大小了

 

你可能感兴趣的:(java优先级问题)