如果在JAVA中,后递减比前递增具有更高的优先级,那么为什么下面的代码输出为22.0而不是20.0



根据优先级规则,首先应该评估quantity--,它应该评估为10,然后应该评估++quantity,它应该估计为10,然后执行加法,结果应该是20.0

int quantity = 10;
double total = ++quantity + quantity--;
System.out.println("total is: - " + total);

优先级规则告诉您如何解析表达式。具有更高优先级的后递减意味着++quantity + quantity--必须被解析为

((++quantity) + (quantity--))

例如,以下内容甚至没有意义

((++quantity) + quantity)--

评估顺序不受影响。表达式仍然是从左到右计算的。也就是说,+的左分支在右分支之前。这意味着++quantity必须在quantity--之前进行评估。

相关内容

  • 没有找到相关文章

最新更新