首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用前缀增量运算符和括号优先级对数学表达式的澄清

使用前缀增量运算符和括号优先级对数学表达式的澄清
EN

Stack Overflow用户
提问于 2019-01-05 09:01:55
回答 2查看 91关注 0票数 0

鉴于这一守则:

代码语言:javascript
运行
复制
int p,k=8;
p=k*(++k-8);
System.out.println(p);

++k被求值时,k=9,然后变成k*(9-8)给予9*1

代码语言:javascript
运行
复制
int p,k=8;
p=(++k-8)*k;
System.out.println(p);

但是这提供了9作为输出。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-05 09:25:23

这是您的代码编译的类文件:

代码语言:javascript
运行
复制
   int k = 8;
    byte var10000 = k;
    int k = k + 1;
    int p = var10000 * (k - 8);
    System.out.println(p); 
票数 1
EN

Stack Overflow用户

发布于 2019-01-05 09:15:16

你有一个乘法

代码语言:javascript
运行
复制
left side:  k  
right side: (++k-8)

正如您正确地指出的,大括号有优先权。然而,您的程序仍然运行“从左到右”。首先对左侧进行计算,即k = 8。然后对右侧进行评估,即(++k-8) = 1。现在,我们已经确定了双方,并可以将它们相乘:8*1 = 8

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54050525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档