複合演算子+=計算の結果は正しいですか?

541 ワード

       s1    s2     ,                ,       。

@Test
public void test13(){
    short s1 = 6000;
    int s2 = 50000;
    s1+=s2;
    System.out.println(s1);// -9536
}
                 
 @Test
 public void test12(){
    short s1 = 6000;
    int s2 = 50000;
    s2+=s1;
    System.out.println(s2);// 56000
}
理由を説明します。s 1+=s 2を実行する際、計算結果はショートの取得範囲を超えているため、自動的に上位をカットし、エラーの結果が発生しました。強制:上記の例に対してs 1+=s 2を適用します。s 1=s 1+s 2に変更します。このようにプログラムはコンパイル時にエラーが発生しますので、上記のエラー結果は発生しません。したがって、複合賦を使って演算する場合には、上記の例が計算された金額であれば、損失は大きいです。