键入if语句的更快捷方式?

时间:2011-06-05 12:55:11

标签: iphone objective-c

说我有......

if (value1 == 1 || value1 == 3 || value1 == 6) {
//Things happen
}

由于每次都引用value1,有没有更快的方法呢?

3 个答案:

答案 0 :(得分:3)

不是。

另一种选择是:

switch (value1)
{
case 1:
case 3:
case 6:
    // Things happen
}

但它不是“更快”!

答案 1 :(得分:2)

您可以使用switch语句:

   switch (value1)
   {
      case 1:
      case 3:
      case 6:
        //Things happen
        break;
      case 4:
        //Something else happens
        break;
      default:
        //Something else happens
   }

如果你有很多if语句检查同一个变量,那么这很有用。

答案 2 :(得分:1)

如果你的意思是做:

if (value1 in {1, 3, 6}) ...
然后不,你不能做那样的事情。 Objective-C没有任何基本类型的集合运算符。但是,还有其他方法可以编写代码,以便您可以快速执行类似的操作。例如,如果可能值的数量不是太大,则可以使用位位置:

if (value1 & (0x02 | 0x08 | 0x20)) ...

编译器可能会在编译时对这些常量进行OR运算,因此整个比较只需要按位AND运算。