开关之所以起作用的原因是:
switch(p){ case (1): x--; case (2): x = 2; case (3): x = 3; default: x++; }实际上(实际上)只是语法糖:
if (p == 1) goto .L1;else if (p == 2) goto .L2;else if (p == 3) goto .L3;else goto .L4;.L1: x--;.L2: x = 2;.L3: x = 3;.L4: x++;
Java没有
goto语句,但是C有,这就是它的来历。因此,如果
p为2,它将跳转到
.L2该标签并执行该语句之后的所有语句。



