亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于three=one+two的問題

http://img1.sycdn.imooc.com//57efb6290001b4d304440583.jpg

我想問下,為什么我這里的three=one+two.運算出來的結果是0呢?three1既然已經被我賦予one+two不該是10+20是30嗎?

正在回答

4 回答

理解java中各運算符的優先級即可,一步一步往下執行

http://img1.sycdn.imooc.com//57efc1b80001b02008340328.jpg

經過最后int three6=three1%=one;

最終

three1=0;

three3=30;

three4=300;

three5=30;

three6=0;


5 回復 有任何疑惑可以回復我~
#1

慕雪1790920 提問者

非常感謝!
2016-10-02 回復 有任何疑惑可以回復我~
#2

慕粉4021294 回復 慕雪1790920 提問者

vvbb
2016-10-08 回復 有任何疑惑可以回復我~

程序都是依照順序結構執行的,即自上而下一步步執行。因此,在你還沒有使用System.out.println()的時候,three1的值已經有了多次的變化。第一次的確是30,但后面就又改變了,因為你使用了+=運算符(加上數后再賦值),相比+運算符多了個賦值的變化。具體情況分析,參照樓上同學。

0 回復 有任何疑惑可以回復我~

可是后面那些three1+=one、three1-=one、three1*=one....語句都是先對three1進行復合賦值操作,再把three1賦值給左邊的變量...最后一個操作也就是three1%=one讓three1的值變為0了

0 回復 有任何疑惑可以回復我~

因為數據都被定義成的靜態變量 (static)

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

關于three=one+two的問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

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

公眾號

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