java中(--i + i + i++)

2025-01-04 17:54:10
推荐回答(5个)
回答1:

后自增操作符即i++返回的是将操作数原来的、未修改的值作为表达式的结果值; 例如
i=0; j=i++(此时i还没有自增); 执行到这里的时候 j=0,i=1

前自增操作符即++i返回的是将修改后的的操作数的值作为表达式的结果值。
i=0; j=++i(i先进行自增); 执行到这里的时候 j=1,i=1

自减 i-- 和 --i 的原理跟自增一样的
这题中 先进性了--i 运算,i值变为-1,故后面的几个i值都为-1
结果为-3, 最后有个i++的操作,i会自增为0 ,
但不影响(--i + i + i++) 里面i的取值

System.out.println(--i + i + ++i); 这样是-1
稍微复杂点的是这样的例子,你可以试试,比较容易理解++的原理
i=0,j=0;
i=i++ + ++i;
j=++j+j++ +j++ +j++

回答2:

你这么看就行了
(i=i-1)+i+i++
-1+(-1)+(-1)++
3个 -1 相加当然就是 -3了
不如如果下边在加一行
System.out.println(i);
的话结果就是-2

回答3:

一步一步来
--i 是i先自减1 i此时为 -1
然后算 --i + i -1 + (-1) = -2
然后 i++ 是i先进行运算 再自增 1 此时的i 还是 -1 前面的-2 +(-1)= -3
打印 出结果 -3
然后i 自增 1 i = -2
如果楼主在打印一下 i System.out.println(i) ;会发现 i= -2 ;

回答4:

一步一步来
--i 是i先自减1 i此时为 -1
然后算 --i + i -1 + (-1) = -2
然后 i++ 是i先进行运算 再自增 1 此时的i 还是 -1 前面的-2 +(-1)= -3
打印 出结果 -3

回答5:

i 是你定义变量的i
+i 与变量i相加
-i 与变量i相减
java中的++ i和 i++ 和c语言中是一样的

首先你要明确以一点是不管是 ++i 还是 i++,最后结果对于i来说都是一样的,他的值都会加1。
eg:i=5;这两个动作完成后i的值都变成6。

其次 对于他赋值给的那个变量就不一样了。
eg:i=5;
a = ++i,这句执行完后a = 6,当然i=6;
但是
a = i++,这句执行完后a = 5,i=6;

看了上面的例子应该明白结果了吧。

理解的话对于a = ++i你可以理解先执行+,再赋值。而对于a = i++,是先执行赋值再+。