代码风格-关于if语句

if语句的代码风格,分两大类:

第一类
1、关键字if后面有空格
2、二元表达式左右有空格
3、每个大括号,单独占一行
4、else关键字单独占一行

None.gif if  (a  >  b)
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif    
// dot.gif
ExpandedBlockEnd.gif
}

None.gif
else
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif    
// dot.gif
ExpandedBlockEnd.gif
}

评述,我推荐在C#中使用这种写法。我觉得这种写法比较优雅,容易阅读。


第二类

1、关键字if后面有空格
2、二元表达式左右有空格
3、大括号放在上一句的右边

ExpandedBlockStart.gif ContractedBlock.gif if  (a  >  b)  dot.gif {
InBlock.gif    
// dot.gif
ExpandedBlockStart.gifContractedBlock.gif
}   else   dot.gif {
InBlock.gif    
// dot.gif
ExpandedBlockEnd.gif
}

也会有人在左括号的右边,右括号的左边,分别添加空格。如下

ExpandedBlockStart.gif ContractedBlock.gif if  ( a  >  b )  dot.gif {
InBlock.gif    
// dot.gif
ExpandedBlockStart.gifContractedBlock.gif
}
  else   dot.gif {
InBlock.gif    
// dot.gif
ExpandedBlockEnd.gif
}

评述,这种写法比较紧凑。在Java中,推荐这种写法,而且使用这种风格的人相当多。但是这种写法有一个缺陷,当if中的条件比较多时,需要换行,这时,就不太好了。如下:

None.gif if  ( (a  +  b)  >  (c  +  d)
ExpandedBlockStart.gifContractedBlock.gif  
&&  (e  +  f)  >  (h  +  j))  dot.gif {
InBlock.gif    
// dot.gif
ExpandedBlockStart.gifContractedBlock.gif
}
  else   dot.gif {
InBlock.gif    
// dot.gif
ExpandedBlockEnd.gif
}

很多人,在编写只有一行语句的if时,会省略大括号。例如:

None.gif if  (a  >  b)
None.gif    maxVal 
=  a;
None.gif
else
None.gif    maxVal 
=  b;

这种写法在维护的时候需要特别小心。因为你在维护时,可能碰到下面的情况:

None.gif if  (a  >  b)
None.gif    maxVal 
=  a;
None.gif    
if  (a  <   0 )
None.gif        a 
=   0 ;
None.gif
else
None.gif    maxVal 
=  b;

认真阅读上述的代码,你会发现一个逻辑错误。我维护别人的代码时,也曾吃过这种亏。

我是能够习惯不同风格的写法的。每当我在编写C#的代码时,使用第一种,编写Java和C++代码时,使用第二种,入乡随俗!tongue_smile.gif

欢迎大家参与讨论!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值