具有多个OR语句的Objective-C IF语句

时间:2013-10-13 00:19:07

标签: ios objective-c if-statement

我想知道是否有一种更简单的方法可以将多个OR语句作为单一IF语句的一部分。

目前我正在这样做:

            if ((i == 1) || (i == 4) || (i == 7)) {}

有更简单的方法吗?

2 个答案:

答案 0 :(得分:5)

你可以使用switch阻止坠落。

switch (i)
{
    case 1:
    case 4:
    case 7:
        yourCode;
        break;
}

答案 1 :(得分:1)

您可以使用NSArray的{​​{1}}方法,如下所示:

containsObject:

这种方法的有用性随着列表的长度而改善:有三个项目,你的解决方案看起来更好,但是一旦超过大约十个数字的限制,这个解决方案变得越来越可读:

if ([@[@1, @4, @7] containsObject:@(i)]) {
    ...
}

您可以为预期常量列表if ([@[@1, @3, @12, @17, @23, @27, @31, @41, @43, @57] containsObject:@(i)]) { ... } 创建一个命名数组,以缩短@[@1, @4, @7],如下所示:

if