if、else小技巧

if、else

关于ifelse语句,大家都觉得很简单吧?但是经常有人会栽在这上边,包括有多年经验的程序员也被坑过。

考虑下面的程序片段:(代码摘自C陷阱与缺陷》第二章)

if(x==0)

       if(y ==0 )error();

else

{

       z = x+y;

}

这段代码作者本意是:

如果x等于0,再y也是0,就运行error();否则就不做任何处理。

如果x不等于0,程序将xy之和给z;

 

而这段代码实际上与作者的意思相去甚远。原因在于C语言中,if始终与同一括号内最近的未匹配的if结合。上面这段代码正确缩进格式应该是:

if(x==0)

{

       if(y ==0 )

      error();

else

{

       z = x+y;

}

}

         如果要满足编程者的本意,应该改成:

         if(x==0)

{

         If(y==0)

                   error();

}

else

{

         z = x + y ;

}

所以建议大家任何时候都不要偷懒少写{ }

 

 

 

 

 

 

关于{ }的风格也大致分成两派,将来会经常看到这两种格式的代码

 

一个是死命省格子派,缺点是看起来不整齐。

if(condition){

         //code 1

}else{

         //code 2

}

 

另一个是对齐强迫症派,每个花括号都要对齐在一条直线上。

if(condition)

{

         //code 1

}

else

{

         //code 2

}


本专题的主要内容选自《C语言深度解剖》陈正冲著,以及百度百科,还有CSDN)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值