• ベストアンサー

C言語で「?」とはなんでしょうか?

C言語で、 (( n%5 == 0 ) ? 0 : 1 ) という式があったのですが、「? 0 : 1」の 部分が検索しても見つけられませんでした。 n%5はわかるのですが… ご存知の方よろしくお願い致します。

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

  • ベストアンサー
  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.2

条件演算子といいます。 意味は、(( 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が採用されます。

xgirl
質問者

お礼

詳しいご説明ありがとうございましたm(__)m

その他の回答 (5)

  • usui323
  • ベストアンサー率35% (40/114)
回答No.6

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が代入されます。

xgirl
質問者

お礼

詳しいご説明ありがとうございましたm(__)mとても助かりました。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.5

条件演算子と言われる、演算子の1つで (条件)? 条件が真の時の値 : 条件が偽の時の値 になります。 if(条件){ x = 条件が真の時の値; } else { x = 条件が偽の時の値; } のような処理をするときに、ifを使わないで x=(条件)? 条件が真の時の値 : 条件が偽の時の値; と書けます。 文でなく式になるのが良いところです。

xgirl
質問者

お礼

詳しいご説明ありがとうございましたm(__)m

  • kokorone
  • ベストアンサー率38% (417/1093)
回答No.4

ans = (( n%5 == 0 ) ? 0 : 1 ) は、 if(n%5 == 0) { ans=0; } else { ans=1; } と、同意です。 「?」は演算子です

xgirl
質問者

お礼

なるほど…ありがとうございましたm(__)m

  • foobar
  • ベストアンサー率44% (1423/3185)
回答No.1

三項演算子で A ? B : C はAが真ならB、偽ならC だったかと。

xgirl
質問者

お礼

ありがとうございましたm(__)m

  • kaeru_007
  • ベストアンサー率22% (8/36)
回答No.3

( 条件 ) ? 真だったら実行 : 偽だったら実行 です。 質問の例の場合、 n%5が0の場合、0 違う場合には 1 を返します。 「3項演算子」で検索すれば、詳細な説明がみられますよ。

xgirl
質問者

お礼

3項演算子ですね。ありがとうございましたm(__)m

関連するQ&A