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

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

包含前增量和后增量的函數(shù)的結果不同

包含前增量和后增量的函數(shù)的結果不同

小唯快跑啊 2023-05-10 15:04:09
我必須理解一些混合函數(shù)前后增量的代碼。有一件事讓我很困惑。所以我嘗試測試一些較小的功能。但我無法解釋以下行為:int i = 1;i = i++ * ++i * 2;System.out.println("i = " + i);int x = 1;x = ++x * x++ * 2;System.out.println("x = " + x);預期的輸出是: i = 8 x = 8但實際上是: i = 6 x = 8有人能告訴我為什么嗎?
查看完整描述

2 回答

?
動漫人物

TA貢獻1815條經(jīng)驗 獲得超10個贊

  • i++ * ++i * 2-->?1?* 3 * 2 --> 6

  • ++x * x++ * 2--> 2 *?2?* 2 --> 8

重要值以粗體顯示。

Java 中返回值時前綴和后綴遞增的區(qū)別可以由 Oracle 自己更好地總結(為了突出顯示,我再次加粗):

可以在操作數(shù)之前(前綴)或之后(后綴)應用遞增/遞減運算符。代碼結果++;和++結果;兩者都將以結果遞增 1 結束。唯一的區(qū)別是前綴版本 (++result) 評估為增量值,而后綴版本 (result++) 評估為原始值。如果您只是執(zhí)行簡單的遞增/遞減,那么選擇哪個版本并不重要。但是,如果您在較大表達式的一部分中使用此運算符,則您選擇的運算符可能會產(chǎn)生重大差異。

在您的特定情況下,由于后綴的計算結果為原始值,并且相同算術運算符的運算順序從左到右 - 此處僅適用乘數(shù) - 您的運算將按上述方式進行翻譯。


查看完整回答
反對 回復 2023-05-10
?
www說

TA貢獻1775條經(jīng)驗 獲得超8個贊

后增量增加了的值i,但不會立即分配新的值i。

預增量增加值i并立即分配新值。

因此,在您的 y, after 示例中i++,

i已經(jīng)成為2但它仍然堅持以前的價值1。

發(fā)生時++i,iwith 的值會增加1,同時賦值給新的值3。因此,給了我們的1 * 3 * 2價值。6y

也一樣x

發(fā)生時++x,x立即分配 的新值2。

然而,當x++發(fā)生時,x 增加了1 仍被分配了先前的值2。因此,2 * 2 * 2給我們8。


查看完整回答
反對 回復 2023-05-10
  • 2 回答
  • 0 關注
  • 173 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號