プロが教える店舗&オフィスのセキュリティ対策術

すみません、以下の式を
わかりやすく解説していただけないでしょうか・・
for文で使用する式なのでしょうか?
Java暦はまだ浅いので、
以下のような複雑な式は初めて見ました。
また、「:」や「?」の意味が分からないのですが・・。

(o==null ? get(i)==null : o.equals(get(i)))

A 回答 (5件)

#2さんのとおり、


<条件文> ? <真の場合> : <偽の場合>
となります。

例)
max = (a>b) ? a : b ;

→ a>b なら a をmaxに代入。
→ そうでないなら b を max に代入。

この例の場合ですと、真の場合も偽の場合も条件式なので、booleanが返りますね。

結果 = (o==null ? get(i)==null : o.equals(get(i)));

→oがnullの場合:
  → get(i) がnull なら true を返す。
  → get(i) がnull でないなら false を返す。
→oがnullでない場合:
  → o が get(i) と等しければなら true を返す。
  → o が get(i) と等しくなければ False を返す。

条件式として書き直すとこんな感じでしょう。

( (o==null && get(i)==null) || (o!=null && o.equals(get(i) ) )
    • good
    • 0

No.1さんの回答で大体良いのですが、


 get(i)==null;
というステートメントはありませんよね。
この場合は、oがnullならば(get(i)==null)の値(trueまたはfalse)を
nullでないならば(o.equals(get(i)))の値(やはりtrueまたはfalse)を
式全体の値とするということです。
    • good
    • 0

条件演算子っていうみたいですね。



例にある演算ってどういうときにつかうのかが気になったりしちゃいます。

参考URL:http://www.y-adagio.com/public/standards/tr_java …
    • good
    • 0

条件文?条件が真の場合:条件が偽の場合


として使います。
CやC++でも利用可能です。
    • good
    • 0

この構文はC言語でも使います。


if文の変形と考えてください。if文では次のようになります。

if(o==null)
 get(i)==null;
else
 o.equals(get(i));

こちらの下の方をご覧ください。
http://user.ecc.u-tokyo.ac.jp/~t10521/ecmascript …

参考URL:http://user.ecc.u-tokyo.ac.jp/~t10521/ecmascript …
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!