检查具有两种不同结果的两个条件(三元运算符)

Ale*_*lex 1 java ternary-operator

我创建了一个变量,

newval1 = lb + (ub - lb)*rnd.nextDouble();
Run Code Online (Sandbox Code Playgroud)

它必须位于两个值之间,bounds[0]并且bounds[1].目前,我使用三元运算符在两行中实现了此检查:

            newval1 = ((newval1<bounds[0]) ? bounds[0] : newval1);
            newval1 = ((newval1>bounds[1]) ? bounds[1] : newval1);
Run Code Online (Sandbox Code Playgroud)

我毫不怀疑有一种比newval1这些界限更有效的方法,最好是一行.有什么建议?

Ale*_*you 8

val = Math.min(bounds[1], Math.max(bounds[0], val));
Run Code Online (Sandbox Code Playgroud)