2

単一の IF ステートメントの一部として複数の OR ステートメントを実行する簡単な方法があるかどうか疑問に思っていました。

現在、私は次のようにしています:

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

もっと簡単な方法はありますか?

4

2 に答える 2

5

switchフォールスルーのあるブロックを使用できます。

switch (i)
{
    case 1:
    case 4:
    case 7:
        yourCode;
        break;
}
于 2013-10-13T00:21:33.367 に答える
1

NSArray次のようにのcontainsObject:メソッドを使用できます。

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

このアプローチの有用性は、リストの長さとともに向上します。項目が 3 つの場合、ソリューションの見栄えは良くなりますが、約 10 個の数の制限を超えると、このソリューションはますます読みやすくなります。

if ([@[@1, @3, @12, @17, @23, @27, @31, @41, @43, @57] containsObject:@(i)]) {
    ...
}

次のように、期待される定数のリストの名前付き配列を作成して、@[@1, @4, @7]を短縮できifます。

NSArray *expect = @[@1, @4, @7];
...
if ([expect containsObject:@(i)]) {
    ...
}
于 2013-10-13T00:27:21.003 に答える