最小値や最大値をmax, minで表現する
ある変数の値がマイナスを許容しないような場合があるとして、他の変数から値を受け取って設定するような場合を考えてみる。(Javaにて)
普通に書くと
int num1; if (a < 0) { num1 = 0; } else { num1 = a }
こんな感じだろうか。もしくは三項演算子を利用して
int num1 = (a < 0) ? 0 : a;
となるだろう。
max, minを使うと?
そして、java.util.Math#max()を利用する書き方はこんな感じになる。
int num1 = java.util.Math.max( a, 0 );
いかがでしょうか。aが0以上の場合は、aになり、0以下の場合は0になるので、目的はこれで達成できている。
ちなみに、100以下みたいな場合は逆にjava.util.Math#min()を使えばよい。
int num2 = java.util.Math.min( b, 100 );
補足
Groovyでは java.util.Collectionに#max(), #min()がGDKで付加されているので
def num1 = [a, 0].max() def num2 = [b, 100].min()
のような感じでさらにスッキリ書ける。