変数とデータ型応用
以下のコードを実行した場合、出力される値はどれですか? ```java int a = 10; String s = "値は" + a + 5; System.out.println(s); ```
A.値は15
✗ 「値は」+ a + 5 は左から順に評価されます。「値は」+ 10 で "値は10" という文字列になり、その後 + 5 で "値は105" になります。a + 5 を先に計算して15にはなりません。
B.値は105← 正解
✓ 正解です。+演算子は左から右に評価されます。"値は" + 10 で "値は10" となり、"値は10" + 5 で "値は105" が出力されます。
C.値は1005
✗ "値は" + a + 5 の評価では、まず "値は" + 10 = "値は10"、次に "値は10" + 5 = "値は105" となります。"値は1005" にはなりません。
D.コンパイルエラーが発生する
✗ Stringとintの+演算子による連結はJavaで有効な文法であり、コンパイルエラーは発生しません。
この問題のポイント
+演算子は左から右に評価されます。"値は" + 10 で "値は10" となり、"値は10" + 5 で "値は105" が出力されます。