(i += 1)
と同等ですi = i + 1
次のような乗算を使用して、上記のようなものを作成することは可能ですか?
(i *= 1)
、 i = i * 1
doubleとして宣言して試しましたが、結果で0.0の値を取得し続けますか?
(i += 1)
と同等ですi = i + 1
次のような乗算を使用して、上記のようなものを作成することは可能ですか?
(i *= 1)
、 i = i * 1
doubleとして宣言して試しましたが、結果で0.0の値を取得し続けますか?
ゼロを1倍しているようです。
0 * 1 = 0
最初に宣言しますdouble i = 1.0;
(またはint i = 1;
10進値が必要ない場合)。ゼロを掛けているようです。もちろん、他の場所の値を変更しない限り、i
時間1
は常になります。1
i
それ以外は、とほぼ同等であることに注意i *= 1
してくださいi = i * 1
。最初の形式はJava言語仕様のセクション§5.1.3に従って暗黙の変換を実行するため、悪魔は詳細にあります。
複合代入式は、実行する計算の結果を左側の変数の型に自動的にキャストします。結果のタイプが変数のタイプと同じである場合、キャストは効果がありません。ただし、結果の型が変数の型よりも広い場合、複合代入演算子はサイレントナローイングプリミティブ変換を実行します
i
乗算する前に割り当てられた値(ゼロ以外)がない場合、0*1は0に等しくなります。
クラススコープで宣言したように、デフォルト値のdoubleを取ります...
これを試して...
class Test implements TestInterface {
public static void main(String[] args){
double i = 1;
System.out.println(i *= 1);
}
}