変数とデータ型計算問題
以下のJavaコードを実行したとき、出力される結果はどれですか? ```java public class Main { public static void main(String[] args) { byte b = 120; b += 10; System.out.println(b); } } ```
A.130
✗ 130 は byte 型の最大値 127 を超えるため、そのままの値は格納されません。オーバーフローが発生します。
B.-126← 正解
✓ 正解です。byte 型の範囲は -128〜127 で、120 + 10 = 130 はオーバーフローし、-126 になります。
C.127
✗ 127 は byte 型の最大値ですが、120 + 10 の演算結果はオーバーフローして -126 になります。
D.コンパイルエラーが発生する
✗ += 演算子は自動的に byte 型へのキャストを行うため、コンパイルエラーは発生しません。