単一の IF ステートメントの一部として複数の OR ステートメントを実行する簡単な方法があるかどうか疑問に思っていました。
現在、私は次のようにしています:
if ((i == 1) || (i == 4) || (i == 7)) {}
もっと簡単な方法はありますか?
単一の IF ステートメントの一部として複数の OR ステートメントを実行する簡単な方法があるかどうか疑問に思っていました。
現在、私は次のようにしています:
if ((i == 1) || (i == 4) || (i == 7)) {}
もっと簡単な方法はありますか?
switch
フォールスルーのあるブロックを使用できます。
switch (i)
{
case 1:
case 4:
case 7:
yourCode;
break;
}
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)]) {
...
}