第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

連續(xù)賦值問題

連續(xù)賦值問題

慕UI6326445 2018-04-01 23:22:31
a=3; a+=a*=a; 为什么a=12?虽然我知道是算术运算符的优先级高于赋值运算符,但对于具体运算过程不理解,请大神解答下,谢谢。
查看完整描述

4 回答

已采納
?
onemoo

TA貢獻883條經驗 獲得超454個贊

a += a *= a;? 這里并不是幾個“算數運算符”和“賦值運算符”,而是兩個“復合賦值運算符”:+=*=。 它們的運算順序是從左到右。

復合賦值運算符運算時會先對左側操作數求值并記住這個值,然后再對右側求值,最后再執(zhí)行賦值。

那么這個表達式中 += 運算符先運算:

  1. 先求?a += a* = a(我用粗體標出來),記下這個 a 的值為 3

  2. 再求右側操作數?a?+= a* = a 的值,它是個 *= 表達式

  3. 仍然是求復合賦值運算符左側的 a += a *= a,會記下這時 a 的值還是 3

  4. 再求右側操作數?a += a *= a,這個 a 是 3,隨后執(zhí)行復合賦值,*= 表達式的值為 9,這個 9 就是第 2 步中要計算的 *= 表達式的值

  5. 執(zhí)行復合賦值 +=。雖然你覺得這時 a 的值應該是 9,但是復合賦值運算時會用之前記下的左操作數的值(也就是第 1 步中記下的 3)

  6. 所以最終 a = 3 + 9

查看完整回答
3 反對 回復 2018-04-02
?
頭疼萬分

TA貢獻2條經驗 獲得超1個贊

根據java運算符的優(yōu)先級,和數學一樣,先乘除后加減,所以a+=a*=a。就先算a*=a=a*a=9,a+=9=12

查看完整回答
反對 回復 2018-04-02
?
CodeManDSH

TA貢獻58條經驗 獲得超18個贊

個人理解:

????a += a * = a;

因為:a += a? ? 等于? ? a = a + a;

????????? ?a *= a? ? 等于????a = a * a;

所以

????a = a + ( a * a ) ;代入3 得12。

查看完整回答
反對 回復 2018-04-02
?
對象不是老婆

TA貢獻16條經驗 獲得超6個贊


賦值運算符和復合賦值運算符是從右邊開始的,計算順序為:

a?*?a?→?a?先算最右的賦值給a.
a?+?a?→?a?再算剩下右面的賦值給a.

如果是a*=a+=a;結果就是18.

查看完整回答
反對 回復 2018-04-02
  • 慕工程5315762
    慕工程5315762
    不是先算最右邊的,還是從左到右依次計算,但要考慮優(yōu)先級問題,你這里就不用考慮了,a*=a+=a;先計算a*=a,然后賦值3*3得9給a,最后計算a+=a(此時a值為9),9+9=18;
  • 4 回答
  • 2 關注
  • 2252 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號