よく、条件によって、代入する値を変更する場合があります。

if(bFlag)
	nValue=16;
else
	nValue=165;

上のプログラムを三項演算子を使って書き直すと、次のようになります。

nValue = bFlag ? 16 : 165;

すっきりしましたね(ちょっと見にくいかもしれませんが)。

三項演算子の構文は次のような感じです。

左辺 = 条件式 ? 条件式が真の場合に代入する値 : 条件式が偽の場合に代入する値 ;

代入の時で無くても、値を必要とする場合ならばどこでも使用出来ます。

printf("%d\n", bFlag ? 16 : 126);

ついでに、関数も呼べます。

bFlag ? printf("真") : printf("偽");

文字列にも使えます(数値と同じですね)。

printf("%s\n", bFlag ? "真" : "偽");

結構使い道はあると思います。

記事検索

アーカイブ