- ベストアンサー
C言語で「?」とはなんでしょうか?
C言語で、 (( n%5 == 0 ) ? 0 : 1 ) という式があったのですが、「? 0 : 1」の 部分が検索しても見つけられませんでした。 n%5はわかるのですが… ご存知の方よろしくお願い致します。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
条件演算子といいます。 意味は、(( n%5 == 0 ) ? 0 : 1 )の場合、 n%5が0ならば、0を採用し、そうでない場合は1を採用する。といういみです。 x = ( n%5 == 0 ) ? 0 : 1; とかくと、nが0,5,10等の5の倍数のとき、X=0となり、 それ以外は、x=1となります。 一般的には、 条件式 ? 式1:式2 となり 条件式が成立すれば、式1が採用され、そうでなければ、式2が採用されます。
その他の回答 (5)
- usui323
- ベストアンサー率35% (40/114)
nを5で割った時の余りが0のとき、0 そうでないときは1ということです。 if(n%5 == 0)のとき0 if(n%5 != 0)のとき1 というイメージです。 例えば以下のようなプログラムだとこうなります。 int a=4; int b=2; b=((a%5==0)?0:1); printf("%d\n",b); aを5で割った余りは0にならないのでb=1となります。 a=5とかだったらbには0が代入されます。
お礼
詳しいご説明ありがとうございましたm(__)mとても助かりました。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
条件演算子と言われる、演算子の1つで (条件)? 条件が真の時の値 : 条件が偽の時の値 になります。 if(条件){ x = 条件が真の時の値; } else { x = 条件が偽の時の値; } のような処理をするときに、ifを使わないで x=(条件)? 条件が真の時の値 : 条件が偽の時の値; と書けます。 文でなく式になるのが良いところです。
お礼
詳しいご説明ありがとうございましたm(__)m
- kokorone
- ベストアンサー率38% (417/1093)
ans = (( n%5 == 0 ) ? 0 : 1 ) は、 if(n%5 == 0) { ans=0; } else { ans=1; } と、同意です。 「?」は演算子です
お礼
なるほど…ありがとうございましたm(__)m
- foobar
- ベストアンサー率44% (1423/3185)
三項演算子で A ? B : C はAが真ならB、偽ならC だったかと。
お礼
ありがとうございましたm(__)m
- kaeru_007
- ベストアンサー率22% (8/36)
( 条件 ) ? 真だったら実行 : 偽だったら実行 です。 質問の例の場合、 n%5が0の場合、0 違う場合には 1 を返します。 「3項演算子」で検索すれば、詳細な説明がみられますよ。
お礼
3項演算子ですね。ありがとうございましたm(__)m
お礼
詳しいご説明ありがとうございましたm(__)m