[解決済み] Java 7以降、三項演算子は1つの式しか評価しない-Java 1.6以下では違っていた?
質問
Oracle Certified Associate Java SE 8 Programmer 1 試験の準備中に、公式の Study Guide で 3 項式に関する次の段落を見つけました。
三項式の評価
Java 7では、三項演算子の右辺の式のうち1つだけが実行時に評価されます。短絡演算子と同様の方法で、三項演算子の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が両方の式を評価することを期待しました。どなたか、"As of Java 7, ..."で何を言いたかったのかお分かりになりますか?
編集してください。 混乱を避けるために。Java 7の時点で」とありますが、Java 6からJava 7に移行する際に、三項演算子について何か変更があったのでしょうか?
どのように解決するのですか?
私はこれが出てきた本の著者の一人です。私はその特定の文章を書きませんでしたが、その意図が "これは Java 7" でテストされたものであることに同意します。私たちが別の版を書いたら、それを削除するようにメモしておきます。
明確には、三項演算子は Java 8、7、6 などで同じように動作してきました。そして、もし将来的に変わったとしたら、私はかなり驚きます。
関連
-
java.sql.SQLException: executeQuery()でデータ操作文を発行できません。
-
Solve モジュールのビルドに失敗しました。Error: ENOENT: no such file or directory エラー
-
ajax コミット リソースの読み込みに失敗しました: サーバーはステータス 400 で応答しました ()
-
Javaジェネリックを1つの記事で
-
配列定数は初期化子でのみ使用可能です。
-
List list = new ArrayList(); Error: ArrayList は型に解決できません。
-
java send https request prompt java.security.cert.について。
-
JDK8 の Optional.of と Optional.ofNullable メソッドの違いと使い方を説明する。
-
Server Tomcat v9.0 Server at localhost の起動に失敗しました。
-
テストが空であるかどうかを判断するためのオプションの処理
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Eclipse問題 アクセス制限。タイプ 'SunJCE' が API でないことを解決し、/jdk ディレクトリにある /jre と jre の違いについて理解を深める。
-
executeQuery()でデータ操作文が発行できない。解決方法
-
Javaクラスが "Error occurred during initialization of boot layer "というエラーで実行される。
-
StringBuilderが投げるArrayIndexOutOfBoundsExceptionの探索
-
シェルコマンドやスクリプトのJavaコール
-
X11 DISPLAY変数が設定されていない」問題の解決方法
-
ecplise プロンプトが表示されます。"選択したものは起動できません。" "最近の起動はありません。"
-
Web Project JavaでPropertiesファイルを読み込むと、「指定されたファイルがシステムで見つかりません」というソリューションが表示されます。
-
Java基礎 - マッピングとQ/A
-
Zipファイルの圧縮・解凍にantを使用する