18
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

解散Advent Calendar 2017

Day 5

参考になる三項演算子

Last updated at Posted at 2017-12-04

どうもこんにちは。専門学校界の旅キチ(自称)です。

最近どうも私の周りで三項演算子の評判がよろしくない(?)ので、せっかくのこの機会に三項演算子の素晴らしさについて伝えていければと思います。

注:この記法はC, C++, C#, Javaについての説明となります。他の言語環境においての動作は保証しませんので悪しからず。
筆者がそいつらしかまともに触ったことがない等とは口が裂けても言えない。

そもそも三項演算子とは何か

三項演算子とはその名の通り、3つの項(式)から成る演算子のことである。

…と言っては身も蓋も無いのでもっと深く説明する。

まず、三項演算子は次のような書式で成り立つ。

<条件式> ? <条件式がtrueの場合の式> : <条件式がfalseの場合の式>

ここでプログラムを書く上で見慣れない記号があるかもしれない。
そう、"?"マークである。
これは条件演算子と言い、条件式によって、"?"の後に並ぶ2つの項目に処理を分岐させる役割を持つ。

これにより、if文において記述されていた処理を劇的にスッキリさせることが可能になる。
例えば、次のように、bool(Boolean)形の変数flagをtrueとfalseで交互に切り替えたい場面があったとする。

if(flag)
{// flagがtrueの場合、falseに

	flag = false;
}
else
{// flagがtrueの場合、falseに

	flag = true;
}

なんとも長ったらしい。
しかしこれを三項演算子を利用して記述するとこうなる。

flag ? false : true;

なんと、あれだけ長ったらしかった処理がこんなにもスッキリ!
こんな素晴らしいものがあったなんて!明日はきっと快晴に違いない!

…と言いたいところではあるが、そう簡単にはいかないのが世の常。
次のコードをご覧頂きたい。

int num = flag ? flag2 ? flag4 ? 1 : 2 : flag5 ? 3 : 4 : flag3 ? flag6 ? 5 : 6 : flag7 ? 7 : 8; 

いかがだろうか?
便利な三項演算子でも、使いどころを間違えるとこのように可読性が地に落ちてしまうのである。

世の中に絶対は無い。それはことプログラミングにおいても同じである。
便利なツールも使いどころを間違えれば石器時代に逆戻りだ。
そしてそのツールの使いどころ、使い方を考えるのは他でもないこの記事を読んでいるあなたである。

使いどころを考えて、良い開発ライフを。

18
12
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?