作者a3567152 (期待的盼望)
看板java
标题[问题] 关於运算子优先顺序的问题
时间Tue Feb 17 01:56:40 2015
爬过文了 没有找到我想要的答案
第一题
int i=3, j=5;
i+=j-=2-1;
求i,j值 用java得到的答案是i=6,j=3
第二题
int i=3, j=3;
i=--i+j+j--+j;
求i,j值 用java得到的答案是i=10,j=2
我想要用的是使用
http://homepage.ttu.edu.tw/slhsieh/Java%20Programming/ch04.pdf
第40.41.42.43页的逻辑理论来得到此两题的答案
可是我一直想不通
像是第一题
不是应该减(-)的优先权比+=或-=高吗?
会变成i+=j-=1;
可是单纯从答案来看
i+=j-=2-1变成i=i+j,j=j-2即j=5-2=3,i=3+3=6,似乎没有用到-1(这段是我纯粹推测)
我知道实际上不太可能会写成这麽畸形的程式码
我只是想满足我的求知慾
感谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.135.222.97
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1424109403.A.4FF.html
1F:推 LPH66: 第一题应该是你执行的程式有错, 我的结果是 7 4 无误 02/17 02:12
2F:→ LPH66: 第二题, ++ 跟 -- 的效果要结算完才会进入下一个运算元 02/17 02:13
3F:→ LPH66: 所以这一大串最终结算是 2+3+3+2 = 10 02/17 02:14
4F:→ LPH66: 是说这是你们老师出的题还是你自己随便试的? 02/17 02:16
5F:→ a3567152: 我看书籍上的练习 02/17 08:53
6F:→ a3567152: 哈哈,所以以你的答案的话 02/17 08:55
7F:→ a3567152: 那些运算先後顺序就可以通了,感谢 02/17 08:57
8F:→ cpper: 不要浪费生命做这种烂题目了,自己去写个小专案才有意义 02/19 13:28
9F:推 pupuliao: 这些题目根本有病,我都直接用 括号解决 02/20 01:34
10F:→ pupuliao: 写code应该以 简单易懂为最高原则... 02/20 01:35
11F:→ OrzOGC: 有病+1... 02/20 19:37
12F:推 gt6174: 这种 code 用在 production 上会被骂吧 02/20 20:56
13F:→ wuliou: 有人写这种code, review的时候一定被骂翻… 02/21 01:39
14F:→ longlongint: 没有定义 02/21 08:07
15F:推 yyc1217: 会写出这种code的人根本就不该当programmer 02/21 11:37
16F:→ KeySabre: 原po最後三行打完预防针 看来没用 02/21 14:01
17F:→ cha122977: 这题应该会考倒很多专业人士 因为根本不该这样写XD 02/23 11:43
18F:→ cha122977: 为考试而出的题目:P 02/23 11:44
谢谢各位的意见~
※ 编辑: a3567152 (114.25.56.102), 02/24/2015 09:37:58
19F:→ realmeat: 因为每个语言会有他自己的定义, 看parser怎解释 02/25 08:59
20F:→ realmeat: 记这种东西很没有意义 02/25 09:00
21F:推 qrtt1: @cha122977 如果是做 compiler 跟研究 JLS 的专业人士 OK的 02/25 17:12
22F:推 jej: 个人觉得很有意思耶 xxs的时候 半调子就看不懂 02/25 21:46
23F:推 jej: 「Domain比较重要 」使得台湾突破不了冏境 02/25 21:50
24F:→ Chikei: 原po很明显不是参与java 9或是java toolchain的人士 02/26 00:33
25F:→ Chikei: 那对他而言搞懂这有啥意义? 02/26 00:34
26F:→ OrzOGC: 学校叫兽很爱出这种无聊题目啊... 02/26 00:45
27F:推 longlongint: 没有定义的行为 03/23 13:47