Rangeを使う。
変数iが1以上90以下かチェックする例。
// 昔ながらのチェック方法:1 <= i && i <= 90
if (i in (1..90)) {
print("iは1以上90以下です")
} else {
print("iは1未満または90より大きいです")
}
ここはIntの例だが、Comparableを実装しているクラスなら、同じ方法でチェックできる。
補足
最初、Rangeオブジェクト的なものを作成していて、ベタなチェック方法よりもパフォーマンス悪いのでは考え、調査のためにbyteコードをDecompileしてみた。
DecompileしたJavaコード
int var2 = this.i;
boolean var3;
String var4;
if (1 <= var2) {
if (90 >= var2) {
var4 = "iは1以上90以下です";
var3 = false;
System.out.print(var4);
return;
}
}
var4 = "iは1未満または90より大きいです";
var3 = false;
System.out.print(var4);
最終的には"1 <= i && i <= 90"が実行されていることが分かる。なので、ベタな方法と性能が劣るということはなさそう。