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

时间:2013-04-24 18:19:42

标签: c++ max

我正在寻找一种可读的方式来写这个(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))

有没有办法只用max define来实现这个目的?

1 个答案:

答案 0 :(得分:1)

代码应易于阅读和理解。你说的第一段代码太长了,非常清楚,三行不是C或C ++的不合理代码。

如果您经常这样做,请将其打包在一个函数中,然后调用该函数。如果禁止的数字可以改变,则将其作为函数的参数。

请注意,三元表达式与使用if语句的代码基本相同。他们可能会编译成相同的代码。