• 招生咨詢熱線:4008-569-579 
  • 手機(jī)版
    用手機(jī)掃描二維碼直達(dá)商品手機(jī)版
招生咨詢熱線
4008-569-579
機(jī)構(gòu)主頁(yè) > 機(jī)構(gòu)新聞 > 復(fù)合賦值運(yùn)算符+=計(jì)算的結(jié)果一定正確嗎?
機(jī)構(gòu)主頁(yè) > 機(jī)構(gòu)新聞>復(fù)合賦值運(yùn)算符+=計(jì)算的結(jié)果一定正確嗎?

復(fù)合賦值運(yùn)算符+=計(jì)算的結(jié)果一定正確嗎?

來(lái)源:北京達(dá)內(nèi)教育        時(shí)間:2023-05-25        熱度:38℃        返回列表

問(wèn)題闡述

Java 語(yǔ)言中賦值運(yùn)算符有=,及其擴(kuò)展運(yùn)算符+=、-=、*=、/=

等復(fù)合賦值運(yùn)算符,這些復(fù)合賦值運(yùn)算符同樣可以實(shí)現(xiàn)加、減、乘、除等四則運(yùn)算。請(qǐng)問(wèn)復(fù)賦值運(yùn)算符+=計(jì)算的結(jié)果一定正確嗎?

達(dá)內(nèi)java培訓(xùn)解答

通過(guò)復(fù)合賦值運(yùn)算符可以實(shí)現(xiàn)運(yùn)算和為變量賦值的操作,但是如果不慎重使用復(fù)合賦值運(yùn)算符,就可能會(huì)計(jì)算出錯(cuò)誤的結(jié)果,這對(duì)于一些重要的計(jì)算將會(huì)造成嚴(yán)重?fù)p失,例如,

銀行的存取款業(yè)務(wù)是不允許有任何差錯(cuò)的,否則將會(huì)造成無(wú)法挽回的經(jīng)濟(jì)損失。

short money1 = 30000;         //聲明 short 型變量

int money2 = 35000;           

//聲明 int 型變量

money1 += money2;           //用+=運(yùn)算符計(jì)算 money1 與 money2

的和,并賦值

說(shuō)明:

上面示例輸出變量 money1 的值為-536,并不是預(yù)期的結(jié)果 65000,這是因?yàn)樵趫?zhí)行語(yǔ)句

money1+=money2 時(shí),由于計(jì)算結(jié)果的值超出了 short

型數(shù)據(jù)的取值范圍,所以自動(dòng)將高位截掉,因而產(chǎn)生了錯(cuò)誤的結(jié)果。因此,在使用復(fù)合賦值運(yùn)算符時(shí),一定要特別小心,如果這個(gè)示例在軟件中計(jì)算的是金額,損失可就大了。

對(duì)于上面的示例,如果將語(yǔ)句 money1+=money2 寫成語(yǔ)句

money1=money1+money2,這樣程序在編譯時(shí)就會(huì)產(chǎn)生錯(cuò)誤,因此就不會(huì)出現(xiàn)上面的錯(cuò)誤結(jié)果了。

示例:

short money1 = 30000;                        //聲明 short 型變量

int money2 = 35000;                           

//聲明 int 型變量

money1 = money1 + money2;           //計(jì)算 money1 與 money2

的和,

說(shuō)明:

上面示例在編譯時(shí)會(huì)出錯(cuò),因此不會(huì)輸出任何結(jié)果,如果使用的是 Eclipse 等集成開

發(fā)工具,還會(huì)在語(yǔ)句 money1 =

money1 +

money2;處出現(xiàn)紅色波浪線,并在該語(yǔ)句的行號(hào)左

側(cè)顯示一個(gè)帶小燈泡和紅叉標(biāo)記的圖標(biāo),用鼠標(biāo)單擊該圖標(biāo),就回去顯示如圖3.12所示的錯(cuò)誤提示信息,從而可以方便地對(duì)程序進(jìn)行排錯(cuò)。


點(diǎn)評(píng)

上面的兩個(gè)示例,歸根結(jié)底都是由于發(fā)生溢出而產(chǎn)生的錯(cuò)誤。所以,在編程時(shí)一定要

考慮是否會(huì)發(fā)生溢出現(xiàn)象,對(duì)于可能發(fā)生溢出的情況,必須要進(jìn)行處理,否則就會(huì)出現(xiàn)意

想不到的錯(cuò)誤結(jié)果,甚至?xí)o企業(yè)造成嚴(yán)重?fù)p失。

電話咨詢

電話咨詢

咨詢電話:
4008-569-579
回到頂部

回到頂部