EDIT 1+演算子と++演算子の間のスペースを削除するとどうなりますか?
免責事項:私は+++
が本当にスペースのないオペレータが、+
と++
事業者ではないことを知っています。私はまた、これを使う理由がないことも知っています。この質問はちょうど好奇心から外れています。
だから、私は+
と++var
の間のスペースはJavaで必要とされるかどうかを確認するには興味があります。これは、プリントアウトし
int i = 0;
System.out.println(i);
i = i +++i;
System.out.println(i);
:
0
1
最初と+
二の間にスペースがあったかのように私は、期待通りに動作します
は、ここに私のテストコードです。
はその後、私は文字列の連結でそれを試してみました:
s 2
をしかし、3行目はコメント解除されている場合、コードがエラーで、コンパイルされません:
String s1 = "s " + ++i;
System.out.println(s1);
// String s2 = "s " +++i;
これは、プリントアウトし
Problem3.java:13: unexpected type
required: variable
found : value
String s2 = "s " +++i;
^
Problem3.java:13: operator + cannot be applied to <any>,int
String s2 = "s " +++i;
^
文字列連結と整数加算の動作の違いition?
EDIT 2
Abhijit's follow-up questionで説明したように、人々が言及したルールが(大きなトークンが短いトークン++の前に、最初に解析され++)それが現れるthis presentationで議論されていますMunchy Munchyルールと呼ばれる。トリプルプラス演算子そのものではない
そしてsimmilaryと同じになります。有効ではありませんが、i = i ++ + ++ i; IS。 – Jayamohan
オペレーターではないので、どのように動作するかを尋ねることは意味をなさない。本当の質問ではありません。 – EJP
フォローアップの質問「+++」はポストフィックスのインクリメントに続いてインフィックス(常に)ですか?](http://stackoverflow.com/q/15382171/977038) – Abhijit