Language agnostic 在交换机中缩进大小写的首选方式是什么?

Language agnostic 在交换机中缩进大小写的首选方式是什么?,language-agnostic,switch-statement,indentation,Language Agnostic,Switch Statement,Indentation,在Eclipse中编写另一个switch时,我再次遇到了一个相当奇怪(至少对我来说)的默认缩进,它应用于“switch”语句: switch (i) { case 1: ... case n: ... } 我倾向于选择另一种方式: switch (i) { case 1: ... case n: ... } 哪种方式对你来说更具可读性和赏心悦目?我还没有百分之百地确定什么对我最好,所以我想坚持什么对其他阅读我代码的人最好 顺便说

在Eclipse中编写另一个switch时,我再次遇到了一个相当奇怪(至少对我来说)的默认缩进,它应用于“switch”语句:

switch (i) {
case 1:
    ...
case n:
    ...
}
我倾向于选择另一种方式:

switch (i) {
    case 1:
        ...
    case n:
        ...
}
哪种方式对你来说更具可读性和赏心悦目?我还没有百分之百地确定什么对我最好,所以我想坚持什么对其他阅读我代码的人最好

顺便说一句,如果这个问题太主观,你可以随意结束它。:)

我使用第二种方式:

switch (i) {
    case 1:
        ...
    case n:
        ...
}

我也喜欢第二种方式。但是,在特定的应用程序和/或特定的团队中保持一致比以某种方式缩进更重要。

我倾向于将所有控制结构体缩进一个单独的(4space)选项卡,如下所示:

switch (i) 
{
    case 1:
        ...
    case n:
        ...
}

我认为开关是外部控制结构和体指令部分(即使是控制结构的一部分)。

然后,我将进一步按如下方式缩进每个案例:

switch (i) 
{
    case 1:
        do_something();
    case n:
        do_something_else();
}
我发现这是switch-case构造最可读的格式


正如jkohlhepp所提到的,遵守您正在处理的项目的代码风格约定是最重要的,如果您正在处理一个没有的项目,那么开发一些是值得的。

第一种方法(对我来说)是合乎逻辑的,但是我也更喜欢第二种方法。我认为我们大多数人都习惯于期望大括号内的代码会缩进。

根据,这是第一种变体(没有额外的缩进)

第一个是标准开关盒缩进

switch (i) {

case 1:
    .... // Here you can write more code in a row than using the second way
    break;
case n:
    ....
    break;
default:
    ....
    break;
}

请注意,在开关(i)和案例1之间插入了新的一行:

MyEclipse默认情况下将其缩进为第二种方式。可能您的Eclipse的代码格式化程序中有误设置?Visual Studio也默认使用第二种方式格式化。@BalusC:只有“Eclipse 2.1[内置]”格式化程序使用额外的缩进对其进行格式化。“Eclipse[build-in]”和“Java Conventions[build-in]”都没有对case语句使用缩进(只是在eclipse3.5上检查了这一点)。我本能地去缩进它们,但我记得第一种格式在5000个其他文件中使用:(这似乎太主观了。+1我也将大括号放在新行上。uggg,块的大括号应该与块定义放在同一行上。-1因为你将大括号放在了新行上(我显然不是真的不同意你的答案,但我真的很讨厌这个),而是+1(这次是真的)表示你如何缩进其他所有内容。很好,甲骨文(或者实际上是Sun的)约定仍在存档,但信息最后一次更新是在1999年,因此目前无效。谷歌确实建议缩进块内容,但直到听到Oracle推荐第一种方法,我才意识到。现在我明白了为什么语法显然与大括号的典型用法不同。例如,while循环的语法为
while ParExpression语句
,而开关的语法为
switch ParExpression{SwitchBlockStatementGroups}
。在while循环中,语句->块:
{BlockStatements}
这在语法上有着不同的用法和含义。这就是为什么我不那么喜欢谷歌。他们喜欢为了好玩而改变事情,全世界都接受它,因为它是一家大公司。