我创建了一个变量
newval1 = lb + (ub - lb)*rnd.nextDouble();
必须位于两个值bounds[0]
和bounds[1]
之间。目前,我使用三元运算符在两行中实现了此检查:
newval1 = ((newval1<bounds[0]) ? bounds[0] : newval1);
newval1 = ((newval1>bounds[1]) ? bounds[1] : newval1);
我毫不怀疑有一种更有效的方法可以将newval1
与这些界限进行比较,最好是在一行中。有什么建议?
答案 0 :(得分:8)
val = Math.min(bounds[1], Math.max(bounds[0], val));