良好的布局和风格,是为了展现代码的逻辑结构,有利于代码的可读性,并且能让代码易于维护。
1.但不必为了追求美观而牺牲可读性和易维护性,如下可能不易维护
尽管这种缩进看上去很漂亮,但变量的名称改变,变量score变为newscore,要维持以等号对齐就会很麻烦。
或将程序移往其他不同缩进级别的位置,也不好维护。
2.关于使用括号,要么使它成为控制结构的一部分,要么视为控制结构下的语句。如下可能扩大了程序逻辑结构的复杂度:
有些人会做成这样----
for (n=10;n>1;n--)
{
s = s + 1 / ( float ) n ;
printf ("%6.4f ",s) ;
}
或者
for (n=10;n>1;n--)
{
s = s + 1 / ( float ) n ;
printf ("%6.4f ",s) ;
}
前者看起来不错,但不能清晰显示出代码的逻辑结构,{与for对齐说明并列于控制结构,而其实要么让{成为控制结构一部分,要么让他从属于控制结构都是比较好的。
后者for循环里面内容缩进了两次,这个例子风格虽然好看,人们对缩进一次和缩进两次的理解并无区别,但这种风格不能呢个准确给出程序的逻辑结构,看上去像是从属于'{',(如果'{'前有一条语句,其实这条语句与括号内语句是并列的),而且直观上看模样更复杂,如下图前者更复杂
如果语句有三层嵌套,那么两次缩进就会使代码有六级缩进,导致布局看起来比实际代码复杂多了,将{}与里面语句作为一整块缩进,并将其间语句对齐更好一点。
建议做成这样-------
for (n=10;n>1;n--){
s = s + 1 / ( float ) n ;
printf ("%6.4f ",s) ;
}
关于这种情况可能会丢括号,不宜检查{的配对,如果你习惯了括号成为控制结构的一部分,就不会丢掉的,
如下图,A与B是控制结构的一整体,C与D从属于控制结构,一目了然
或者大家都习惯的这样:
for (n=10;n>1;n--)
{
s = s + 1 / ( float ) n ;
printf ("%6.4f ",s) ;
}