百科问答小站 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语言




  

相关话题

  常说「Java 在虚拟机中运行」,请问这个虚拟机可以视为 Java 语言的解释器吗? 
  对于大型项目,静态类型是必须的吗? 
  C# 引用类型相比于值类型意义何在? 
  如何通俗地解释 C、C++、C#、Java、JavaScript、HTML、Python的用处? 
  什么理由让代码保存为GBK? 
  如果你们想要自创一个编程语言,你们希望它有什么特色? 
  如何看待阿里巴巴Java开发程序员孤尽觉得Java是世界上最好的语言? 
  为什么很多 Java 程序员都不愿意升级到最新的 jdk? 
  如何设计一个以计算机技术人员为原型的奇幻世界的职业? 
  大三下学期了,比较熟悉C#但哪都看到JAVA薪资和发展都比.net好,想转学JAVA,还来得及吗? 

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





© 2024-05-17 - tinynew.org. All Rights Reserved.
© 2024-05-17 - tinynew.org. 保留所有权利