> 动物
在……前面是什么意思(()前()后)
导语:“++”在前还是在后有什么区别?聊聊Java里面的奇怪语法
四十年前很多人学过谭洁强版的C语言,都对其中的“++”“--”符号很费解,感觉折腾得不行。其实这个问题在Java里面也一样存在。
例如下面这段代码,能输出什么结果呢?
int a = 3;
int b = 5;
int c = 9;
System.out.println(b+++-c--+--a);
大家可以先算算,看看输出的结果是不是和大家想的一样。
一秒。
两秒。
三秒。
好吧,现在我们出结果,答案是-2。
那么为什么是-2呢?很多人可能会这样算,b++=6, -c--=-8,--a=2,所以结果应该是0。
那么为什么会这样呢?我们先来把这个表达式的运算顺序确定一下。
b+++-c--+--a的运算顺序是这样的
(b++) + (-(c--)) + (--a)
加上了括号就清晰了。
很多朋友一看就觉得这不就应该是6+(-8)+2=0吗?
但是事实上不是这样,这个原因主要是在于对“++”这个运算符的定义上,这个运算符如果在后面的话的是在运算结束之后再加1,在前面的话是加1之后再参与运算,--同理。所以在上面的例子中,实际的运算中,是5-9+2,所以结果是-2。
如果我们先进行++和--再参与运算的话,那么结果就是0了。
喜欢本文的话,欢迎关注活在信息时代哦:)
本文内容由小悦整理编辑!