奇妙なJavaプリント出力

私はJavaを初めて使い、簡単な印刷で作業していました。まず、私は実行した:

System.out.println(1 + 2 + "3");

Output:33

1と2が追加され、3がそのまま印刷されるという論理を作りました。

次に、私はこれを試した:

System.out.println ("1" + 2 + 3);

Output:123

その論理を適用すると、私は答えが15になり、正解を解くことができなかったので、私はあなたの助けが必要です。

1

3 答え

演算子 + は左から評価され、2番目の例は次のように解釈されます。

System.out.println (((“1”+2)+3));
====================> "12"+3
====================> "123"

15 を表示する場合は、次の操作を行う必要があります。

System.out.println (“1”+(2+3));

このように(2 + 3)が最初に評価されます。

5
追加された
  1. 1 + 2 int です。
    "3" をそのintに連結します。

  2. "1" + 2 String です。
    次に、 3 をその String に連結します。

"1" +(2 + 3)を考えています。これは、Javaが左結合であるために起こりません。

2
追加された

最初のケースでは、Javaが結果を3にするために数値を追加し、文字列3を追加すると連結文字列 "33"になります。

後者の場合、結果は "1"のために文字列であり、他は連結されて "123"になります。

1
追加された