java不带大括号_Java切换案例:带或不带大括号?

使用大括号的情况下是否有任何性能损失?

没有。

花括号用于帮助编译器找出variables,条件,函数声明等的范围。一旦将代码编译为可执行文件,它不会影响运行时的性能。

这是过早优化的一个极端例子。 这是一个更好的主意,担心哪种方式更容易阅读和debugging。

从执行的angular度来看性能不会受到影响。

从编译的angular度来看,性能会有轻微的下降,因为还有更多需要parsing的东西,但是如果有人真的担心这个问题,他们将不得不把代码写在一行上:-)

而现在对于我们这个post的意见部分…我总是把{和}放进去,因为可维护性会受到一定的惩罚,所以你可能不得不在晚些时候把它们放进去,在后来…但这是103%的个人喜好。

正如我们所知道的,开关盒的大括号是没有必要的。 使用大括号的情况下可能会导致一个案件的范围混淆。

一个开放的大括号通常与一些有意义的东西相关联,例如函数的开始或循环的开始,类的声明的开始或者数组的初始化等等。我们知道,当遇到中断时,声明。 因此,使用花括号似乎意味着对于一个无知的读者而言,情况的范围不同。 所以,为了更好的编程可读性,最好避免使用花括号。

即当我有类似的东西,

switch(i) { case 1 : { //do something } System.out.println("Hello from 1"); case 2: .... }

“你好从1”被打印。 但使用大括号可能暗示一个无知的读者,以'}'结尾,已经知道大括号通常表示在循环,方法等情况下。

就像我们在“C”中跳转到标签语句一样,控制转移到大小写并继续执行。 所以,有了这样的理解,在编写切换案例时使用大括号就是一个坏习惯。

从技术上讲,当你使用有效的语法时,你可以使用额外的花括号来包围代码块。 在开关中使用大括号看起来如此糟糕,至less对我来说,因为它似乎有一个不同的感觉,就像我上面所说的。

我的build议:只要避免使用周围的大括号开关案件。

带着大括号。

switch语句有很多事情可能会出错,我尽量避免它们,也就是说,

忘记rest,因此有案件的突破

忘记一个默认的情况下,因此不捕捉一个不适合的条件

意外重复使用case语句之间的variables,或者更糟糕的是,影响variables在case语句之间共享一个variables。

使用大括号是防止在案件陈述之间有意和无意共享variables的一种方法

这个问题可能会被视为“议论性的”(BRACE WAR!),但到底是什么。 我其实很喜欢这个案子之后的大括号。 对我来说,这使丑陋的开关语法看起来更像是语言结构的其余部分。 (在这种情况下使用括号是没有惩罚的)

你说花括号可以省略,因为没有variables的名字被重用。 通过重用variables名,我假设你的意思是声明一个新的variables相同的types。

大括号实际上是最有用的,以确保您不会错误地在不同case重复使用相同的variables。 他们今天没有声明任何variables,但有人会明天添加它们,没有大括号的代码是容易出错的。

我不会使用大括号开关案件。

开关语句看起来已经足够巴洛克式了,没有大括号。

开关盒应该很短。 当你需要声明variables时,这是一个标志,你做错了。

现在closures维护一些遗留的C代码,其中包含500多行的切换案例…

我从来没有想过。 从来没有需要大括号在案件条款,所以不能真正明白为什么你会需要他们。 就我个人而言,我不会去“维护起来会更容易”,只是垃圾,如果代码有意义并且有文档logging,维护起来会更容易。

没有大括号…语法更less

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值