在objective-c中的Switch / Case语句中对组进行分组

时间:2013-03-08 09:13:52

标签: objective-c switch-statement

我有一个切换案例,在不同情况下可能对应相同的代码片段。

是否有一个优雅的替代方案,而不是复制所有代码?

switch(expression) {

  case firstCase:
      // do something
      break;

  case secondCase:
      // do exactly the same of first case
      break;

  case otherCase:
      // do anything else
      break;

  case etceteraCase:
      .......


  default:
      break;

}

我知道作为一种替代方案,我可以创建一个在案例中调用的方法,但这可能会导致难以维护的方法的扩散。

3 个答案:

答案 0 :(得分:6)

是:

switch(expression) {

  case firstCase:
  case secondCase:
      // do exactly the same of first case
      break;

  case otherCase:
  case yetAnotherCase:
      // do anything else
      break;

  case etceteraCase:
      .......


  default:
      break;

}

答案 1 :(得分:1)

在第一个案例后删除休息:

switch(expression) {

  case firstCase:

  case secondCase:
      // do the same of first case
      break;

  case otherCase:
      // do anything else
      break;

  case etceteraCase:
      .......


  default:
      break;

}

答案 2 :(得分:1)

switch(expression) {

  case firstCase:
  case secondCase:
      // do exactly the same of first case
      break;

  case otherCase:
      // do anything else
      break;

  case etceteraCase:
      .......


  default:
      break;

}

排除break;将产生您的预期结果。