主な内容の要点
1. 型が違うときは自動で変換される
- Javaでは
intやdoubleなど、異なる型の値を一緒に計算するとき、自動的に型変換(型の統一)が行われる。 - 例:
16 / 2.0 // int と double の計算
Java→ 16 が自動的に double に変換され、結果は 8.0(double型)。
2. 自動変換のルール(優先順位)
- どちらかが double → 両方 double に変換
- どちらかが float → 両方 float に変換
- どちらかが long → 両方 long に変換
- 上記以外 → 両方 int に変換
3. 注意点(エラーになりやすいケース)
- int 変数に double の結果を代入しようとするとエラー
int i = 10 * 0.2; // エラー
Java→ 結果は double なので、int に入れるには明示的にキャストが必要
int i = (int)(10 * 0.2); // OK
Java- short や byte でも計算結果は int になる
short s1 = 14;
short s2 = 8;
short s3 = s1 + s2; // エラー
Java→ s1 + s2 の結果は int になるため、short に代入するにはキャストが必要
short s3 = (short)(s1 + s2); // OK
Java- 単項マイナス演算子(-)でも int に変換される
short s1 = 12;
short s2 = -s1; // エラー
Java→ -s1 の結果は int になるため、short に代入するにはキャストが必要。
初心者へのアドバイス
- 計算するときは「結果の型」が何になるかを意識することが大事。
- 特に
shortやbyteは計算すると自動でintになるので注意。 - 型が合わないときは キャスト演算子
(型)を使う。
👉 まとめると、Javaでは「小さい型 → 大きい型」への変換は自動で行われるけど、逆(大きい型 → 小さい型)はエラーになるので、キャストが必要になるということです。
