概ね方位不定だが多分割と偏っている
スポンサーサイト
--年--月--日 (--) | 編集 |
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


C 条件演算子
2006年09月11日 (月) | 編集 |
ゲーセンに行ってY提督にガンダムの心得を訊いてきたり、
朝までひデブで対戦したり(それも3人という半端な人数で)、
そのまま友人を迎える為に色々準備をしたり、
訪れた友人から野菜を貰ったり、その野菜で飯を作ったり、
Amazonから届いた本を読んだり、やはり今週もX-MENを見たり、
ユグドラでリスタート繰り返して頭抱えたり…

今週は実に充実した週末であった。





うへへこれっぽっちも勉強が進んでねー

本当に充実してた?
自分を誤魔化すのは良くないって誰かが言っていたなそういや。
条件演算子は3つの項目を評価する演算子(3項演算子)らしい。
書式は、

e1 ? e2 : e3

こんな感じになる。
e1が条件式、e2が条件が真の時の式に、e3が条件が偽の時の式になる。
例えば、

c=(x>0)?x:-x;

だとxが0より大きいときc=xに、xが0より小さいとc=-xに代入される。
つまりどう転んでもcには0より大きい数字が入るわけか。
ただまあ、

if(x>0)
 c=x;
else
 c=-x;


でも同じ事ではある。
何の為にあるんだこの演算子?

お仲間?に単項演算子、2項演算子等がいるらしい。
単項演算子は-x等に使われる-(xにしかかかっていないので単項)、
2項演算子はa*b等に使われる*(a,b両方にかかっているので2項。+や-、/もか?)
等が該当しているそうな。


折角なので3項演算子を使った関数を見てみよう。

int abs(int x)
{
return(x>0? x:-x);
}


丸っきりさっきの例文だな。
xがどういう数値であれ、結局は正の数を返すことになる。
つまり、絶対数を返す関数と言える。

abs_test.jpgabs_test2.jpg

まあif文でも以下略

if文でも以下略、なので、if文で出来るものはこれでも出来る(多分)。
例えば、大小を求める関数なんかもこれで作る事が可能。

int max(int a,int b)
{
return(a>b)?a:b;
}


aがbより大きければaを返すし、そうでないならbを返す。
つまりaとbのうち、大きい方を返す関数になる。

big_test.jpgbig_test2.jpg
この通り

>を逆にすれば

なんということでしょう!

大きい方を返すことしか出来なかった関数が小さい方を返す関数に早変わり。

small_test.jpgsmall_test2.jpg
ちょろいにも程がある


まとめてみる。

if文と同じような事を出来る演算子が居る…
その名は条件演算子!


今宵、君は死兆星の輝きを見るか。
スポンサーサイト

コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。