• ベストアンサー

意味のわからない文があるんです

long型でも表しきれない膨大な計算をするプログラムの問題があるんですが、その中に int i2 = (r == 0 ? 4 : r); という文があるんです。 これって変数i2をどうしていることなんでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • 8gold
  • ベストアンサー率58% (27/46)
回答No.2

これは「三項演算子」という物で、処理としては以下のif文と同等です。 rの値が0ならi2に4が、0以外ならrが入ります。 CやC++、C#にも存在する演算子です。 int i2; if (r == 0) {   i2 = 4; } else {   i2 = r; }

参考URL:
http://wisdom.sakura.ne.jp/programming/java/java14.html
noname#203123
質問者

お礼

問題もそうかいてくれれば分かったんですけどね~。 ご回答ありがとうございました!

その他の回答 (1)

  • PCFREAK
  • ベストアンサー率51% (417/805)
回答No.1

正式名称は忘れました・・・多項演算子・・?だったかな・・・?自信なしです。 rが0ならば、i2には4を代入する。 rが0以外ならば、i2にはrを代入する。 という意味で、 (r==0?)を評価して trueならば第1項を、falseならば第2項を、というものです。

noname#203123
質問者

お礼

なるほど~!そういうことなら、しっくりきます。 早いご回答ありがとうございました!