Switch语句继续

时间:2013-08-29 23:56:47

标签: c++ switch-statement

C ++中是否可以使用以下内容?

switch (value) {
   case 0:
      // code statements
      break;
   case 1:
   case 2:
      // code statements for case 1 and case 2
      /**insert statement other than break here
       that makes the switch statement continue
       evaluating case statements rather than
       exit the switch**/
   case 2:
      // code statements specific for case 2
      break;
}

我想知道是否有办法让switch语句继续评估其余的情况,即使它遇到匹配的情况。 (例如其他语言的continue语句)

3 个答案:

答案 0 :(得分:4)

一个简单的if怎么样?

switch (value)
{
case 0:
    // ...
    break;

case 1:
case 2:
    // common code
    if (value == 2)
    {
        // code specific to "2"
    }
    break;

case 3:
    // ...
}

答案 1 :(得分:2)

确定案例标签后,switch无法继续搜索其他匹配标签。您可以继续处理以下标签的代码,但这并不区分达到case标签的不同原因。所以,不,没有办法完成选择。实际上,C ++中禁止使用重复的case标签。

答案 2 :(得分:1)

是的,就是不要休息一下。它自然会落到其他开关语句中。