Java | 演算時の自動型変換(暗黙の型変換/型昇格)

Java Java
スポンサーリンク

主な内容の要点

1. 型が違うときは自動で変換される

  • Javaでは intdouble など、異なる型の値を一緒に計算するとき、自動的に型変換(型の統一)が行われる。
  • 例:
16 / 2.0   // int と double の計算
Java

16 が自動的に double に変換され、結果は 8.0(double型)。


2. 自動変換のルール(優先順位)

  1. どちらかが double → 両方 double に変換
  2. どちらかが float → 両方 float に変換
  3. どちらかが long → 両方 long に変換
  4. 上記以外 → 両方 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 に代入するにはキャストが必要。


初心者へのアドバイス

  • 計算するときは「結果の型」が何になるかを意識することが大事。
  • 特に shortbyte は計算すると自動で int になるので注意。
  • 型が合わないときは キャスト演算子 (型) を使う。

👉 まとめると、Javaでは「小さい型 → 大きい型」への変換は自動で行われるけど、逆(大きい型 → 小さい型)はエラーになるので、キャストが必要になるということです。

Java
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました