Java程序员使用哪种花括号编码风格更好?

4

我在许多教程中看到,一些程序员在同一行代码中使用大括号,另一些则在单独的一行中使用大括号,还有一些人采用混合方法。

所以我的问题是,大括号是应该单独成行还是不需要?

if (you.hasAnswer()) {
    you.postAnswer();
} else {
    you.doSomething();
}

还是应该是

if (you.hasAnswer())
{
    you.postAnswer();
}
else
{
    you.doSomething();
}

甚至更多
if (you.hasAnswer()){
    you.postAnswer();
}
else{
    you.doSomething();
}

在Oracle官方的网站关于代码规范的说明中,他们给出了以下代码示例。
if (condition) {
    statements;
}

if (condition) {
    statements;
} else {
    statements;
}

if (condition) {
    statements;
} else if (condition) {
    statements;
} else {
    statements;
}

1
无论你最喜欢什么,通常使用语言的编码约定。 - sroes
1
我更喜欢第二种风格,但最终取决于你们团队的编码规范。 - user330315
3
程序员应该信仰哪个宗教更好?伊斯兰教还是基督教? - Ingo
3
跟随已经存在的代码。如果没有可用的,请选择你喜欢的(这使问题变得主观)。我最喜欢第一个,因为我喜欢一次性在屏幕上看到尽可能多的代码。 - paxdiablo
2
在编译器层面上是否有任何区别呢? - user2955816
3
不,编译器并不关心这个。 - UltraInstinct
1个回答

1

首选第一种或第三种。我主要偏向第一种因为它更加紧凑,但是在“if else”树中有时会使用第三种来实现对注释行的语法简化。

竖直空间很宝贵,因为研究发现算法的理解限制与能够在一个屏幕上看到的竖直大小密切相关。浪费竖直空间来处理不重要的if分支是毫无意义的。


3
我发现第二种风格比第一种更易于阅读/跟踪,因为代码块是“对齐的”(由于开放和关闭括号在同一级别)。 - user330315
1
当代码量很大时,代码理解变得更加具有挑战性,而不仅仅是一个简单的“if”语句。因此,我们必须针对这种情况制定我们的编码风格指南。我相信在这里有客观和实际的判断依据。 - Thomas W

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接