Java では、式:
n+++n
以下と同等に評価されるように見えます:
n++ + n
の算術演算子+n
よりも優先順位の高い有効な単項演算子であるという事実にもかかわらず。そのため、コンパイラは、演算子が単項演算子になることはできないと想定し、式を解決しているように見えます。+
n + n
ただし、式:
n++++n
次のように解決される有効な可能性が 1 つあるにもかかわらず、コンパイルされません。
n++ + +n
++n
と+n
は同じ優先順位を持つと指定されているのに、なぜコンパイラは見かけ上のあいまいさをn+++n
算術演算に有利に解決する+
のに、 ではそうしないのn++++n
でしょうか?