2

我有一个 switch 案例,在不同的案例中可能对应于相同的代码片段。

有没有一个优雅的选择,而不是复制所有的代码?

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;

}

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

4

3 回答 3

7

是的:

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;

}
于 2013-03-08T09:16:07.310 回答
2

在第一种情况后删除中断:

switch(expression) {

  case firstCase:

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

  case otherCase:
      // do anything else
      break;

  case etceteraCase:
      .......


  default:
      break;

}
于 2013-03-08T09:16:29.487 回答
2
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;将产生您的预期结果。

于 2013-03-08T09:16:41.170 回答