- ベストアンサー
意味のわからない文があるんです
long型でも表しきれない膨大な計算をするプログラムの問題があるんですが、その中に int i2 = (r == 0 ? 4 : r); という文があるんです。 これって変数i2をどうしていることなんでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
これは「三項演算子」という物で、処理としては以下のif文と同等です。 rの値が0ならi2に4が、0以外ならrが入ります。 CやC++、C#にも存在する演算子です。 int i2; if (r == 0) { i2 = 4; } else { i2 = r; }
その他の回答 (1)
- PCFREAK
- ベストアンサー率51% (417/805)
回答No.1
正式名称は忘れました・・・多項演算子・・?だったかな・・・?自信なしです。 rが0ならば、i2には4を代入する。 rが0以外ならば、i2にはrを代入する。 という意味で、 (r==0?)を評価して trueならば第1項を、falseならば第2項を、というものです。
質問者
お礼
なるほど~!そういうことなら、しっくりきます。 早いご回答ありがとうございました!
お礼
問題もそうかいてくれれば分かったんですけどね~。 ご回答ありがとうございました!