• 招生咨詢熱線:4008-569-579 
  • 手機版
    用手機掃描二維碼直達商品手機版
招生咨詢熱線
4008-569-579
機構主頁 > 機構新聞 > 復合賦值運算符+=計算的結果一定正確嗎?
機構主頁 > 機構新聞>復合賦值運算符+=計算的結果一定正確嗎?

復合賦值運算符+=計算的結果一定正確嗎?

來源:北京達內教育        時間:2023-05-25        熱度:50℃        返回列表

問題闡述

Java 語言中賦值運算符有=,及其擴展運算符+=、-=、*=、/=

等復合賦值運算符,這些復合賦值運算符同樣可以實現(xiàn)加、減、乘、除等四則運算。請問復賦值運算符+=計算的結果一定正確嗎?

達內java培訓解答

通過復合賦值運算符可以實現(xiàn)運算和為變量賦值的操作,但是如果不慎重使用復合賦值運算符,就可能會計算出錯誤的結果,這對于一些重要的計算將會造成嚴重損失,例如,

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

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

int money2 = 35000;           

//聲明 int 型變量

money1 += money2;           //用+=運算符計算 money1 與 money2

的和,并賦值

說明:

上面示例輸出變量 money1 的值為-536,并不是預期的結果 65000,這是因為在執(zhí)行語句

money1+=money2 時,由于計算結果的值超出了 short

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

對于上面的示例,如果將語句 money1+=money2 寫成語句

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

示例:

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

int money2 = 35000;                           

//聲明 int 型變量

money1 = money1 + money2;           //計算 money1 與 money2

的和,

說明:

上面示例在編譯時會出錯,因此不會輸出任何結果,如果使用的是 Eclipse 等集成開

發(fā)工具,還會在語句 money1 =

money1 +

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

側顯示一個帶小燈泡和紅叉標記的圖標,用鼠標單擊該圖標,就回去顯示如圖3.12所示的錯誤提示信息,從而可以方便地對程序進行排錯。


點評

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

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

想不到的錯誤結果,甚至會給企業(yè)造成嚴重損失。

電話咨詢

電話咨詢

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

回到頂部