gpt4 book ai didi

java - Java 中增量运算符的奇怪行为?

转载 作者:行者123 更新时间:2023-11-29 09:45:33 24 4
gpt4 key购买 nike

我需要一段代码:

int m = 4;
int result = 3 * (++m);

int m = 4;
int result = 3 * (m++);

第一种情况执行后m为5,result为15,而第二种情况m也为5,result为12,为什么会这样呢?它不应该至少是相同的行为吗?

我特指优先规则。我一直认为这些规则规定括号比一元运算符具有更高的优先级。那么为什么不先计算括号中的表达式呢?

最佳答案

否 - 因为在第一种情况下,结果是 3 乘以“m 递增后的值”,而在第二种情况下,结果是 3 乘以“ 的初始值” >m 在递增之前”。

这是pre-increment(“自增,表达式的值为自增后的值”)和post-increment(“记住原值,然后自增;表达式的值为原来的”)。

关于java - Java 中增量运算符的奇怪行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7490790/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com