【发布时间】:2012-03-01 01:40:42
【问题描述】:
每个表达式的计算结果是什么?假设 x 在每个之前都是 2。
int num = x++ * 3;
所以这相当于 (2)*3 或 num=6 并且 x 现在是 3。num *= x;
num =2*2 或 4(x < 2) && (x > 1)
变为 FALSE,因为 (21)=true 所以它是 false。(++x < 2) || (x < 1)(3<2)是假的,然后((2+1)<1)也是假的,所以它是假的?
一个问题是,在这种情况下,预增量是否在中断前应用于变量?第二个 x 值应该是 3 还是 2?
对于后增量,我也有同样的问题。假设我有num=x++ *x++,其中初始 x=2。那么这是 2*2 还是 2*3?
【问题讨论】:
-
你说的是哪个“中断”?
-
第四个。由于预增量在第一个括号中(我确定它有一个特殊的名称),它会影响第二个括号比较中 x 的值吗?
-
如果 x 的值在 AND 或 OR 语句的前半部分中前后递增,它会影响后半部分的值吗?
-
为什么不自己尝试一下呢? --> Ideone
标签: java expression variable-assignment increment