複合演算子+=計算の結果は正しいですか?
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に変更します。このようにプログラムはコンパイル時にエラーが発生しますので、上記のエラー結果は発生しません。したがって、複合賦を使って演算する場合には、上記の例が計算された金額であれば、損失は大きいです。