Language agnostic 在交换机中缩进大小写的首选方式是什么?
在Eclipse中编写另一个switch时,我再次遇到了一个相当奇怪(至少对我来说)的默认缩进,它应用于“switch”语句: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: ... } 哪种方式对你来说更具可读性和赏心悦目?我还没有百分之百地确定什么对我最好,所以我想坚持什么对其他阅读我代码的人最好 顺便说
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}
这在语法上有着不同的用法和含义。这就是为什么我不那么喜欢谷歌。他们喜欢为了好玩而改变事情,全世界都接受它,因为它是一家大公司。