プロが教えるわが家の防犯対策術!

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

A 回答 (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が採用されます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/06/06 03:42

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が代入されます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/06/06 03:47

条件演算子と言われる、演算子の1つで


(条件)? 条件が真の時の値 : 条件が偽の時の値
になります。
if(条件){
x = 条件が真の時の値;
} else {
x = 条件が偽の時の値;
}
のような処理をするときに、ifを使わないで
x=(条件)? 条件が真の時の値 : 条件が偽の時の値;
と書けます。
文でなく式になるのが良いところです。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/06/06 03:46

ans = (( n%5 == 0 ) ? 0 : 1 )


は、

if(n%5 == 0)
{
ans=0;
}
else
{
ans=1;
}
と、同意です。
「?」は演算子です
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/06/06 03:45

( 条件 ) ? 真だったら実行 : 偽だったら実行



です。

質問の例の場合、 n%5が0の場合、0 違う場合には 1 を返します。

「3項演算子」で検索すれば、詳細な説明がみられますよ。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/06/06 03:43

三項演算子で


A ? B : C
はAが真ならB、偽ならC
だったかと。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/06/06 03:43

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!