C#中case的贯穿

C#中switch语句中的case后面必须要有跳转语句,为啥这个代码能够直接从A到C?不需要增加goto的语句吗?(在vs2019中运行的代码)

img

1.在c语言和c++中,case可以不加break,但会造成标签的贯穿
2.在c#中,case也可以不加break,也会造成标签的贯穿,但至少最后一个case要加break,不能都不加
3.一旦某个case里写了执行代码,那么就必须加break或return,不可以带着代码贯穿到下一个标签(这在c和c++里是允许的)

谁说必须要break的?不是必须的啊
你可以几个case执行同一段代码,如同例子一样。因为case只能针对一个值,所以当一段代码针对多个值时,就可以写几个case,但不加break

break实质是在switch ...case语句里面最先遇到那一个break就从该位置结束该语句,没有内容则贯穿。goto控制逻辑,多个嵌套的循环中跳出,或跳报警。