在Java的算数运算符中,存在一种自加自减类型的运算符,没错,就是让初学者不断绕圈子的++和--
自加
什么是自加呢?就是我们上面所说的++了
先看下面这段代码:
public class JanYork {
public static void main(String[] args) {
int x = 1;
x++;
System.out.println(x);
}
}
这段代码中,x赋值为1,在通过++的运算后,x就会输出为2
自减
什么是自减呢?++就是+1那--自然就是-1了
public class JanYork {
public static void main(String[] args) {
int x = 1;
x--;
System.out.println(x);
}
}
那么这里面的x也就会输出0了
--i与++i
不要因为++--就这么简单了!有时候,你有没有见过这样的语句呢?
public class JanYork {
public static void main(String[] args) {
int x = 1;
int y = x++;
System.out.println(y);
}
}
你可能会觉得,这不和上面一样吗?
那输出为多少?2?
不,y会输出为1,为什么呢?我们看看第三行代码:
int y = x++;
这个++是在x的后面,那么根据运算顺序,就得先赋值给y再自加
所以y会为1!
重点:如果这里x++改为++x,那么就是先自加后再赋值,这个时候y的值就为2了!
--呢?当然是与上面的++同理了啦!
我们来看看这道题啊!
public class Cs {
public static void main(String[] args) {
int x = 0;
x--;
int y = x++ + ++x;
System.out.println(x + y + ++x);
}
}
大家算一下,这段代码输出值为多少?
如果你算出来是3,那恭喜你,对了!
如果你算出来是2或者其他,那就听我分析分析
这题我们先看第一句:x=0
然后看看第二句代码:x--,这里是单行运算,不需要注意是前面加还是后面加,所以x--后x=-1
再来看第三句代码:先看X++,++是不是在后面,所以我们x++后,x仍然不变,=-1
但是,注意了,后面的运算,还有一个++x,而先前的x++中,++会在后面的运算中加入运算,所以相当于是y=-1+ ++ ++x,那后面的++x就是+1+1+(-1),算出来就是这样,y=-1+1=0,所以y=0,而x现在的值是1,代入下面的语句,就是1+0+2,所以答案为3!
这题摸索清楚了后,++和--就没什么问题了,下次更新下一章内容吧!