两个值的最大值,其中一个不能等于预定义值



我正在寻找一种很好的可读的方式来写这个(a和b是输入):

int value = 50;
if(a == value) return b;
if(b == value) return a;
return max(a,b);

这太长了。我想到了这个,但这还不够清楚:

return (a==value)?b:((b==value)?a:max(a,b))

是否有一种方法来实现这一点,只有最大的定义?

代码应该易于阅读和理解。你说的第一段代码太长了,但很清楚,对于C或c++来说,三行代码并不是不合理的。

如果你经常这样做,把它打包到一个函数中,然后直接调用这个函数。如果禁止的数字可以更改,则将其作为函数的参数。

注意,三进制表达式本质上与使用if语句的代码相同。它们可能会编译成相同的代码。

最新更新