基本データ型のキャスト:問題1
問題:以下のプログラムのコンパイル/実行結果として適切なものを1つ選択しなさい。
A. 変数xへの代入文でコンパイルエラー(型の不一致)
B. 変数yへの代入文でコンパイルエラー(型の不一致)
C. 5 が表示される
D. 5.0 が表示される
public class M {
public static void main(String[] args) {
int x = 5;
double y = x;
System.out.println(y);
}
}
正解:
D. 5.0 が表示される
解説:
変数xへの代入文・・・int型変数 = int型リテラル → データ型は一致しています。
変数yへの代入文・・・double型変数 = int型変数 → 大きな型への代入です。
より大きな型への代入では、自動的に型変換が行われるため、
キャスト演算を行わなくてもyの値は5.0になります。
A. 変数xへの代入文でコンパイルエラー(型の不一致)
B. 変数yへの代入文でコンパイルエラー(型の不一致)
C. 5 が表示される
D. 5.0 が表示される
public class M {
public static void main(String[] args) {
int x = 5;
double y = x;
System.out.println(y);
}
}
正解:
D. 5.0 が表示される
解説:
変数xへの代入文・・・int型変数 = int型リテラル → データ型は一致しています。
変数yへの代入文・・・double型変数 = int型変数 → 大きな型への代入です。
より大きな型への代入では、自動的に型変換が行われるため、
キャスト演算を行わなくてもyの値は5.0になります。