为什么这些案件没有提前声明?

Rad*_*row -2 c switch-statement

进入下面的代码case 1:case 2:case 5:似乎有执行任何代码.我的问题是,我们不能省略输入它们吗?

switch(c)
{
  case 1:
  case 2:
  case 3:
    a++;
    break;
  case 5:
  default:
     b++;
  break;
}
Run Code Online (Sandbox Code Playgroud)

phi*_*mue 5

它们会通过,即如果你遇到1或者2它会跳进这些情况,因为没有break继续案例3.所以你不能忽略的,因为否则的话1,并2会跳转到default.

类似地,案件5将落到default,意味着你可以省略case 5.

从本质上讲,switch陈述可以被想象为 - goto跳到适当的位置.这意味着,该程序将跳转到适当的情况并继续从那里工作,直到它找到breakreturn.这意味着,如果您不希望程序在后续程序中继续执行,则必须编写breakreturn显式写入case.