Re: [討論] 簡單的加法運算

看板Flash作者 (CJ Cat)時間17年前 (2008/03/07 01:50), 編輯推噓6(604)
留言10則, 4人參與, 最新討論串3/3 (看更多)
hmm...感覺很像是程式期末考老師的愛考題~XDD 我就依我的認知試著分解這個expression吧 (有錯請糾正囉) 另外,參考到的AS operator precedence規則如下: 1. a-- 屬於 Postfix operator 2. + 屬於 Additive operator 3. = 屬於 Assignment operator 4. 運算優先順序為 Postfix > Additive > Assignment 5. Postfix operator會先回傳整個expression的值才運作 大致的expression運作流程如下: 1. a-- + 1 → a會先+1,導致有個暫存值 x = 2 2. --的precedence大於=,所以先執行a -= 1 → 這個時候a值為1 3. 最後執行的 = 相當於 "a = x" → a的值又被改回2 結論:trace(a)得到的值是1,但是a確實有"短暫"時間為2 只是後來又因為assignment operator = 將a複寫x之值 不過,寫code就是要讓意思簡單明了 所以這種expression實際應用價值只有考試吧... 結論,請大家愛用小括弧XD -- CJ Cat = Croa'J Cat = Cockroach Cat = 西街凱特 = 蜚蠊貓 = 蟑螂貓 Gallery http://cjcat2266.deviantart.com ptt2 Board CJWorkshop - 阿多比閃光(Adobe Flash)研討區 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.228.75.107 ※ 編輯: cjcat2266 來自: 61.228.75.107 (03/07 01:53)

03/07 02:09, , 1F
咦,結果是2嗎? 我以為是0 0.0
03/07 02:09, 1F

03/07 02:11, , 2F
因為我把a = a-- + 1 看成以下兩行:
03/07 02:11, 2F

03/07 02:11, , 3F
a = 1 + 1
03/07 02:11, 3F

03/07 02:12, , 4F
a = 1 - 1
03/07 02:12, 4F

03/07 02:12, , 5F
哭哭
03/07 02:12, 5F

03/07 02:14, , 6F
你這樣應該沒錯,只是少了第三行 a = x; //x == 2
03/07 02:14, 6F

03/07 08:58, , 7F
西啊,很像考題,應該沒人習慣程式真的會這樣寫 :)
03/07 08:58, 7F

03/07 12:06, , 8F

03/07 12:07, , 9F
可以看看java實際上是怎麼算這個加法的 :)
03/07 12:07, 9F

03/10 02:22, , 10F
其實真正注意它只有在java xd 
03/10 02:22, 10F
文章代碼(AID): #17q2xZ6Y (Flash)
文章代碼(AID): #17q2xZ6Y (Flash)