a++和++a如果在单独使用时,效果是一样的
如果在等式中,例子:s=a++和s=++a是不一样的
int a=1;s=a++ 此时的a是先赋值,再+1;所以此时s=1;a=2
int a=1;s=++a 此时的a是先+1;再赋值,所以此时s=2;a=2
例子:
int x = 1,y = 1;
if(x++==2 & ++y==2)
{
x =7;
}
System.out.println("x="+x+",y="+y);
分析:在这道题中,x++==2这个条件是不成立的,此时x的值是先赋值,所以1不等于2,但输出的时候x是+1的。,这道题的结果是 x=2 y=2
int x = 1,y = 1;
if(x++==2 && ++y==2)
{
x =7;
}
System.out.println("x="+x+",y="+y);
分析:&&的运算方式是,当第一个条件为false时,就不再判断第二个条件,所以y不会去执行y++==2
所以结果是 x=2 y=1
int x = 1,y = 1;
if(x++==1 | ++y==1)
{
x =7;
}
System.out.println("x="+x+",y="+y);
分析:x++==1这个条件是满足的 所以执行x=7;y也执行了y++==1 所以结果是 x=7,y=2
int x = 1,y = 1;
if(x++==1 || ++y==1)
{
x =7;
}
System.out.println("x="+x+",y="+y);
分析:||短路与的运算方式是 当第一个条件为true时,就不再执行第二个条件,所以结果为x=7 y=1
|