Почему вы хотите сделать это без оператора if
, может быть сомнительно, но (начиная с Java 5) Integer
имеет метод signum
, который будет возвращать -1, 0 или 1 в зависимости от на целочисленное значение:
int newVal = someValue + Integer.signum (x);
Предполагая, что ваше входное значение всегда будет равно нулю или больше, это будет делать то, что вы хотите. Но вряд ли это будет быстрее, чем if
оператор вроде:
int newVal = someValue;
if (x > 0) newVal++;
и не более кратко, чем троичная версия:
int newVal = (x > 0) ? someValue + 1 : someValue;
Я просто хотел бы включить его в качестве опции на тот случай, если вам не нужен ни if
, ни троичный вариант.