Oracle Certified Associate Java SE 8 Programmer 1試験に備えて、公式の学習ガイドの3項式に関する次の段落に出くわしました。
三項式の評価
Java 7では、三項演算子の右側の式の1つだけが実行時に評価されます。短絡演算子と同様に、3項演算子の2つの右辺式の1つが副作用を実行する場合、実行時に適用されない可能性があります。この原則を次の例で説明しましょう:[...]
次の例で示すように、2つの式のうちの1つだけが評価されることを示しています。
int y = 1;
int z = 1;
int a = y < 10 ? y++ : z++;
ここでは、y
インクリメントのみz
ですが、そうではありません。
私がつまづいているのは、「Java 7以降...」と書かれている段落(黄色でマークされている)の始まりです。同じコードをJava 1.6でテストしましたが、動作の違いを見つけることができません。私は、Java 1.6が両方の式を段落で与えられた情報からのみ評価することを期待していました。誰かが「Java 7の時点で...」で何を言いたかったのか考えがありますか?
編集:混乱を避けるために:それは質問に要約されます、「Java 7の時点で」と書いているため、Java 6からJava 7に切り替えるときに、3項演算子に関して変更されたものはありましたか?