こんな疑問にお答えします。
記事の内容
- 条件演算子(3項演算子)の使い方
- 条件演算子(3項演算子)の入れ子構造
ifやswitchを使わない条件分岐、条件演算子(三項演算子)の使い方
分岐先が2つだけならif・switchを使わなくても条件演算子で記述できます。
条件演算子の使い方
例:
#include <stdio.h> void main() { int num=1, max; num>0 ? printf("num>0\n") : printf("num<=0\n"); //① max = num>10 ? num : 10; //② printf("max=%d\n",max); }
実行結果
num>0
max=10
例では2つの使い方を挙げました。
①は「num>0」が真か偽かで処理が変わります。numは1(num>0は真)なのでコロン「:」の左側にある「printf("num>0\n")」が実行されています。
②では「num>10」が真か偽かによってmaxに代入する値が変化します。numは10より小さい(num>10は偽)ので「:」右側にある10がmaxに代入されています。
条件演算子(三項演算子)の入れ子構造
条件演算子の中に条件演算子を入れて書けます。このような書き方を入れ子構造といいます。
例:
#include <stdio.h> void main() { int num=15, max; max=num>0 ? (num>10 ? 10 : num) : 0; printf("max=%d",max); }
実行結果
max=10
「?」の右側の処理を条件演算子にできます。入れ子構造にすることでより細かく場合分けできます。
何重にも入れ子にするとコードが見にくくなるので注意です。上の例もちょっと見にくいですよね…
まとめ:条件演算子・if・switchの使い分け
条件分岐の記述方法はif、switch、条件演算子の3つがあります。条件演算子は少ない条件分岐をシンプルに書くのに適しています。条件が多い時はifかswitchが適しています。
ifとswitchの使い分けについてはこちら
-
【C言語】switch・case・breakで複数条件分岐する方法
switchで条件分岐する方法を知りたい。ifとはどう使い分けたらいいの? こんなお悩みにお答えします。 記事の内容 switch, case, break, defaultの使い方 ifとの違い、使 ...
続きを見る