java - 使用增量运算符进行计算

标签 java increment

Java表示以下计算的结果是-24。 但不是 --(-3)*(6)++ == -4*7 == -28 吗?

public int rechnung3()
{
    int k = -3;
    int i = 6;
    return --k*i++;
}

最佳答案

否,因为后缀增量发生在表达式求值之后。因此本质上,i 仅在结果存储到堆栈后才会递增。

所以发生的事情相当于这样:

int k = -3;
int i = 6;

k = k -1;           // --k  makes k = -4
int tmp = k * i;    // a temporary location stores the value of (--k) * i  =  -24
i = i + 1;          // i++ increments i, now i = 7
return tmp;         // returns -24 (the result from the auxiliary location)

关于java - 使用增量运算符进行计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21689510/

相关文章:

javascript - counter++ 与 counter = counter+1;

php - 如何使用 mysql 更新查询 (php) 增加一个值

java - 使用 JAX-RS 定义自定义参数类型以按标识符返回数据

java - 温度换算

java - 创建对象枚举

python - 如何使用字典理解从列表中创建和增加字典中的值

java - 为什么这个二次方程不会返回负数?

java - ArrayDeque vs ArrayList 实现堆栈

javascript - JS : incrementing pages (page1. html, page2.html,page3.html...) 用于 window.replace

c# - 编译器优化和增量