2017-07-13 9 views
-1

以下のコードでxの値は何ですか?その理由を説明できますか? 私は、xが8になるべきであると思ったが、結果は...それは2であるint値の演算子「?:」を使用した結果

int x=3; 
x = 4? 2: 8; 
+2

に対してそれをチェックしているので、

int x=3; x = x==4? 2: 8; 

それは8を返します。 ?あなたが知ったようにそれは間違っています。 –

+2

xが8になると思った理由を教えてください! – John3136

+0

タイトルに記載されているこの演算子「q」は何ですか?それは質問の本文には言及されていません。 – Gerhardh

答えて

3

2番目のコード行で常に真である4をチェックしているので、条件が真であるため出力2が返されます。そして、以下のようなコードを書く:あなたは8となりたい場合は条件が偽であるとして、xの値が3であり、あなたが8だと思いますなぜあなたは4

2

これを示しています。?:は三項演算子です。構文は次のとおりです:(condition) ? (if_true) : (if_false)。つまり、conditionがtrueの場合はif_true、それ以外の場合はif_falseが返されます。

(あなたがバイナリで4を表している場合ではないすべてのビットのは0あるため)だから、あなたの場合には、conditionは常に真である4あり、それゆえif_true部分が返されます。 thisも確認してください。

関連する問題