1

私のプログラムでは、少なくとも私にとっては奇妙な振る舞いに気づいています。

誤った出力:

public static void main(String[] args)
    {
        while(count < 3)
        {
            System.out.println("Count: " + count);
            System.out.println("" +(count*2)+1);
            count++;
        }
    }

次のprintステートメントを生成します。

Count: 1
21
Count: 2
41

このプログラムに対して:

public static void main(String[] args)
    {
        while(count < 3)
        {
            System.out.println("Count: " + count);
            System.out.println((count*2)+1 + "");
            count++;
        }
    }

この出力を生成します:

Count: 1
3
Count: 2
5

私の質問は、Java 7は、空の文字列を""算術式の前に置くと、空の文字列がその算術式の後に続く場合には実行されない特別なことを実行しますか?

4

2 に答える 2

10

演算子には2つの+意味があります。
number + number追加を意味します。string + anything文字列の連結を意味します。

+演算子は左結合です。
したがって、次の"" + a + b"ように解析されます("" + a) + b

于 2012-12-26T18:36:40.427 に答える
2

ブラケットに問題があります。

("" +(count*2)) + 1

(count*2 + 1) + ""

同じではありません。

于 2012-12-26T18:39:49.060 に答える