2013-02-25 3 views
4

Две константы (1 + 2) используют один и тот же оператор case. Я не хочу удваивать код.Синтаксис инструкции оператора для того же действия в разных случаях

Каков правильный синтаксис для этого?

switch (expression) { 
     case 0: 
      [self taskA]; 
      break; 
     case 1: 
      [self taskB]; 
      break; 
     case 2: 
      [self taskB] 
      break; 
     default: 
      break; 
    } 

ответ

9

Использование:

switch (expression) { 
    case 0: 
     [self taskA]; 
     break; 
    case 1: 
    case 2: 
     [self taskB]; 
     break; 
    default: 
     break; 
} 

Edit 1:

В switch мы говорим, термин называется осень-через. Всякий раз, когда контроль доходит до метки, case 0: он падает до break. На break управление отправляется на закрывающие фигурные скобки switch.

Если break не встречается, он переходит к следующему case, как в case, затем case 2. Таким образом, выше case 1 и case 2 акций один break заявление.

1

Несколько ярлыков кейсов могут ссылаться на один и тот же оператор, если разрыв или возврат не используются в конце корпуса. Если вы не используете оператор break в случае 1, выполнение переходит в регистр 2.