IT転職・プログラミングスクール

必ず出るぞ!三項演算子【Java Silver例題】

Java Silver 例題

この記事は、Oracle Java SE8 Silver(1Z0-808)の対策講座です。

今回は、三項演算子についてです。

 

三項演算子はIf文を短縮した構文で、次のように書かれます。

三項演算子の構文

条件式 ? trueの式 : falseの式

 

三項演算子はJava Silverでは必ずと言っていいほど出題されます。

 

問題:三項演算子について

早速ですが、次の2問を解いてみてください。

問1

A.    msg = num > 70 ? "High" : num > 90 ? "Middle" : "Low";
B.    msg = num > 70 ? num > 90 ? "Middle" : "High" : "Low";
C.    msg = num > 90 ? num > 70 ? : "High" : Middle" : "Low";
D.    msg = num > 90 ? "High" : num > 70 ? "Middle" : "Low";
E.    msg = num > 90 ? "High" : num > 70 : "Middle" ? "Low";
F.    すべて間違い

 

問2

A.  「A」と出力する
B.  「B」と出力する
C.  「C」と出力する
D.   コンパイルエラー

 

いかがでしょうか?

 

 

 

答えは
問1 D
問2 C  です。

 

Java Silver 問題集
参考記事【Java Silver問題集】高頻出・間違えやすい問題たち

この記事は、Oracle Java SE8 Silver(1Z0-808)の対策講座です。 出題確率が高く、間違いやすい例題が解説付きで100問以上あります。   Java Silver 問 ...

続きを見る

 

三項演算子のポイントと解説

三項演算子は、式内にさらに三項演算子を入れることができます。

三項演算子を重ねた場合は、次のようになります。

三項演算子のネスト

 

解説

三項演算子を重ねた場合のコードに慣れておけば、今回の問題は簡単に解くことができます。

 

問1

A.    msg = num > 70 ? "High" : num > 90 ? "Middle" : "Low";
B.    msg = num > 70 ? num > 90 ? "Middle" : "High" : "Low";
C.    msg = num > 90 ? num > 70 ? : "High" : Middle" : "Low";
D.    msg = num > 90 ? "High" : num > 70 ? "Middle" : "Low";
E.    msg = num > 90 ? "High" : num > 70 : "Middle" ? "Low";
F.    すべて間違い

 

この問題では、numの値でによってmsgを次のように出力します。
numが90以上:High
numが70以上:Middle
それ以外   :Low

AとBはどちらも、numが70以上のときにHigh、90以上のときにMidldeとなるので誤りです。

Cは「num>90」がtrueの時に「num>70」を判定しているので、Middleに到達することができません。
したがって、誤りです。

Dは「num>90」がfalseの時に「num>70」を判定しているので正しい変換です。

Eは2つ目の三項演算子の構文が正しくないので誤りです。

したがって、答えはDです。

 

問2

A.  「A」と出力する
B.  「B」と出力する
C.  「C」と出力する
D.   コンパイルエラー

 

この問題も三項演算子を重ねたプログラムについてです。

aは1なので、7行目の「a>1」はfalseとなります。

したがって、次に「a != 1」が判定されます。

この条件でも、falseとなるので最終的に「C」が出力されます。

したがって、答えはCです。

 

 

Java Silver 問題集
参考記事【Java Silver問題集】高頻出・間違えやすい問題たち

この記事は、Oracle Java SE8 Silver(1Z0-808)の対策講座です。 出題確率が高く、間違いやすい例題が解説付きで100問以上あります。   Java Silver 問 ...

続きを見る

-IT転職・プログラミングスクール
-,

Copyright© 人生2段飛ばし , 2020 All Rights Reserved Powered by AFFINGER5.