プログラム言語によっては三項演算子というものが実装されています。P?A:B
のようになります。
なでしこでは
たとえば、最大・最小の値を求めるのにこの手法が使えます。下のサンプルをみてください。
- 最大・最小をn項演算で求める
A=100 B=50 MAX=A*(A>B)+B*(A≦B) # 100*1+50*0 MIN=A*(A<B)+B*(A≧B) # 100*0+50*1
こんな風に、条件式A<B
などが0または1という整数の値を返すことを利用して、もし文を使わずに計算だけで最大や最小を得ることができます。ただし、3つ以上の値の場合は配列最大・最小値命令を使った方がいいでしょう。
- 式がコンパクトである
- もし文が短くなってソース全体の見通しがよくなることがある
- ケースバイケースだが、実行速度や理解のしやすさは多少犠牲にもなる
上の例ではすごく速くなるとか言うわけでもなし、あまり有難みがありませんね。僕の場合はこういうソースも読み慣れてきているので、よく使ってしまいますが、まぁ知っていなければいけない知識ではありませんね。結論、普通は「もし」文を使えばよい。あくまでTipsとしてどうぞ。
n項演算使って便利な例があればさらにプログラム例を追加します。