Вы можете сделать t < Math.min(s, c)
, но это не уменьшит количество сравнений.
Я думаю, что правильное использование Math.min
и Math.max
делает код более читабельным. К сожалению, они имеют перегрузки только для 2 аргументов (для аргументов int
, long
, float
и double
). Было бы здорово, если бы у них было 3 перегрузки args и varargs.
Вы всегда можете написать метод утилит для такого рода вещей (проверка интервала является обычной идиомой (minV <= v) && (v <= maxV)
и т. Д.), Но лингвистически , ни в одной Java нет таких причудливых операторов, которые бы выполняли эти вещи , Они имеют только базовые операторы числового сравнения ( JLS 15.20.1 ) и базовые логические операторы ( JLS 15.22.2 , 15.23 , 15.24 ).
Sidenote
Языки более высокого уровня, такие как Icon делает допускающими следующие типы конструкций:
Java Icon
(x < v1) || (x < v2) x < (v1 | v2)
(a < b) && (b < c) a < b < c