(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は常になります。1i
それ以外は、とほぼ同等であることに注意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);
}
}