当我在Eclipse中编写另一个开关时,我再次遇到了一个相当奇怪的(至少对我来说)默认缩进,它适用于'switch'语句:
switch (i) {
case 1:
...
case n:
...
}
我倾向于采用另一种方式:
switch (i) {
case 1:
...
case n:
...
}
哪种方式更具可读性和赏心悦目?我仍然没有百分之百地决定什么对我最好,所以我想坚持那些读我的代码的人最好的。
顺便说一下,如果这个问题过于主观,你可以自由地结束这个问题。 :)答案 0 :(得分:15)
我也喜欢第二种方式。但是,在特定应用程序和/或特定团队中保持一致比以某种方式缩进更为重要。
答案 1 :(得分:10)
根据"official" Java Code Conventions,它是第一个变体(没有针对案例的额外缩进)。
答案 2 :(得分:8)
我倾向于将所有控制结构体缩进为单个(4空格)标签,如下所示:
switch (i)
{
case 1:
...
case n:
...
}
我认为切换是外部控制结构和case指令的一部分(即使它们是控制结构的一部分)。
然后我会进一步选中缩进每个案例,如下:
switch (i)
{
case 1:
do_something();
case n:
do_something_else();
}
我发现这是switch case构造最易读的格式。
正如jkohlhepp所提到的那样,你正在处理的项目的代码风格约定是最重要的,如果你正在开发一个没有的项目,那么值得开发一些。
答案 3 :(得分:1)
第一种方法对我来说具有逻辑意义,但我也更喜欢第二种方法。我认为我们大多数人都习惯于期望大括号内的代码缩进。
答案 4 :(得分:1)
第一个是标准开关盒缩进。
switch (i) {
case 1:
.... // Here you can write more code in a row than using the second way
break;
case n:
....
break;
default:
....
break;
}
注意switch(i)和case 1之间的新插入行:
答案 5 :(得分:0)
我使用第二种方式:
switch (i) {
case 1:
...
case n:
...
}
答案 6 :(得分:0)
如果您更喜欢第二种情况,那么为了保持一致性,您还应该缩进else
声明的if
部分:
if( test )
do_something( );
else
do_something_else( );
大多数人不这样做,并且惯例是将分支保持在与语句相同的级别上,因此Java更喜欢第一个作为case语句的测试,并且代码分支在级别上比if / then /更一致否则构建。
我也在他们之间翻转,但最后还是更喜欢第一个:
switch (i) {
case 1:
...
case n:
...
}