百科问答小站 logo
百科问答小站 font logo



java switch 不加 break 继续执行 下一个case(不用匹配条件) 这个设计是因为什么? 第1页

  

user avatar   Ivony 网友的相关建议: 
      

这是从C语言继承的特性。

不过这个的确容易犯错,所以Anders在C#做了个修正。


至于C语言为什么会如此设计,具体原因不可考,猜测一下:

1、这样规则最简洁,换言之swicth就可以完全等价于if goto else if goto这样,以case xx:作为上一个case的结束,在语义上与break重复,规则更复杂,并且想要贯穿时需要增加额外的代码:goto case next;。这种语法对应到汇编的规则也是最简洁的。

2、便于叠加多个case,例如:

       case 0: case 1:   //xxx      

这种写法很常见。


user avatar   chen-xiao-en 网友的相关建议: 
      

问C语言




  

相关话题

  为什么编程语言语法的设计不往缩小与自然语言的差别的方向发展,或者说在这个方向发展得这么慢呢? 
  为什么很多人都说 Python 简单? 
  如何通俗地理解「分布式系统」,它解决了哪些问题,有什么优缺点? 
  低耦合或代码重复在该情况中该如何抉择? 
  当年谷歌为什么不收购sun?而让Oracle买了去呢? 
  java中接口的多继承为什么对不同返回值,相同方法名和传入参数的相同方法报警? 
  为什么 Java/JDK 都快出 18 了,还有人用 1.8 呢? 
  除了跨平台和平台成本以外,Java 还有什么特性是 C# 不具备的? 
  为什么有些minecraft的mod作者提供了混淆代码后又提供一份源代码?那提供混淆代码的意义在哪? 
  为什么应届生去互联网大厂工资这么高? 

前一个讨论
C#如何将数据库一并打包发行?
下一个讨论
中国政府不断向拉美各国发放巨额贷款的原因与意义是什么?





© 2025-07-02 - tinynew.org. All Rights Reserved.
© 2025-07-02 - tinynew.org. 保留所有权利