byte 同士の計算結果
このコードを実行するとどうなるか。
public class Main {
public static void main(String[] args) {
byte x = 10;
byte y = 20;
byte z = x + y;
System.out.println(z);
}
}
- A
30と出力される - B
1020と出力される - C 実行時に例外が発生する
- D コンパイルエラーになる
正解と解説を見る
正解: D
- A: 実行まで進まないので、何も出力されません。
- B: 数値の足し算なので、文字列のように連結されることはありません。
- C: 型が合わないのはコンパイル時に見つかる誤りです。
- D: byte 同士の計算結果は int なので、キャストなしで byte の変数には代入できません。
ポイント
- byte・short・char の計算結果は int になります。int を byte の変数にはそのまま代入できません。
byte z = (byte) (x + y);とキャストするか、x += yのような複合代入演算子を使います。