Не уверен, поможет ли это?
result = a + (b*(a < b));
result = a - (b*(a > b));
По сути, (a < b)
преобразуется в логическое значение, которое в основном равно 1 (true) или 0 (false).b
, умноженное на 0, конечно же, равно нулю, поэтому ничего не добавляется, а b
, умноженное на 1, в точности равно b
.