0

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

有没有办法只用最大定义来实现这一点?

4

1 回答 1

1

代码应该易于阅读和理解。您说的第一个代码太长了,非常清晰,三行代码对于 C 或 C++ 来说并不是不合理的代码量。

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

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

于 2013-04-24T18:27:49.423 回答