【问题标题】:Is there a cleaner way in objective-c to cap a value between two numbers? [duplicate]在objective-c中是否有更简洁的方法来限制两个数字之间的值? [复制]
【发布时间】:2014-02-10 00:33:16
【问题描述】:

下面的代码有没有更简洁的写法?

if (myValue > 100) 
  myValue = 100;
if (myValue < 0) 
  myValue = 0;

提前感谢您的智慧!

【问题讨论】:

  • 同一事物有十几种变体。没什么神奇的。

标签: objective-c


【解决方案1】:

您可以使用MAXMIN,虽然不一定那么清楚。

myValue = MAX(MIN(myValue, 100), 0);

【讨论】:

  • 我同意,尽管我仍然比上面的四线更喜欢它。谢谢。
【解决方案2】:
myValue = (myValue > 100) ? 100 : myValue;
myValue = (myValue < 0) ? 0 : myValue;

myValue = (myValue > 100) ? 100 : ((myValue < 0) ? 0 : myValue);

当然我会使用MIN/MAX,即使你做两行。

也许

#define MINMAX(_min_,_max_,_n_) (MAX(MIN(_n_, _max_), _min_))

【讨论】:

    猜你喜欢
    • 2018-03-27
    • 1970-01-01
    • 2014-10-29
    • 2021-11-16
    • 1970-01-01
    • 2022-11-25
    • 2013-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多