在一行中执行逻辑的更好方法

时间:2018-12-11 03:28:52

标签: objective-c ternary-operator boolean-logic

是否有更好的方法可以在一行中执行此逻辑?

- (BOOL)isValueInRange {
    return ((level.integerValue > 100) || (level.integerValue < 0)) ? NO : YES;
}

2 个答案:

答案 0 :(得分:2)

您可以这样做:

return level.integerValue >= 0 && level.integerValue <= 100;

如果该值在范围内,则返回true,否则返回false。

答案 1 :(得分:2)

我认为您不必两次重复level.integerValue就可以逃脱。

return !((level.integerValue > 100) || (level.integerValue < 0))

您也可以使用NSLocationInRange

NSLocationInRange(level.integerValue, NSMakeRange(0, 100)