代码风格-关于if语句
if语句的代码风格,分两大类:
第一类
1、关键字if后面有空格
2、二元表达式左右有空格
3、每个大括号,单独占一行
4、else关键字单独占一行
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/dot.gif)
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/dot.gif)
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
评述,我推荐在C#中使用这种写法。我觉得这种写法比较优雅,容易阅读。
第二类
1、关键字if后面有空格
2、二元表达式左右有空格
3、大括号放在上一句的右边
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/dot.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/dot.gif)
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
也会有人在左括号的右边,右括号的左边,分别添加空格。如下
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/dot.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/dot.gif)
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
评述,这种写法比较紧凑。在Java中,推荐这种写法,而且使用这种风格的人相当多。但是这种写法有一个缺陷,当if中的条件比较多时,需要换行,这时,就不太好了。如下:
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/dot.gif)
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](/Images/OutliningIndicators/InBlock.gif)
![](/Images/dot.gif)
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
很多人,在编写只有一行语句的if时,会省略大括号。例如:
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
这种写法在维护的时候需要特别小心。因为你在维护时,可能碰到下面的情况:
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
![](/Images/OutliningIndicators/None.gif)
认真阅读上述的代码,你会发现一个逻辑错误。我维护别人的代码时,也曾吃过这种亏。
我是能够习惯不同风格的写法的。每当我在编写C#的代码时,使用第一种,编写Java和C++代码时,使用第二种,入乡随俗!
欢迎大家参与讨论!