避免重复写if判断的一种写法

在编程中,大家会遇到这种情况,连续好多个判断条件,如果条件成立,就继续往下操作,如果不成立,就马上退出。但这样会造成2种情况:
(1)if语句的重复嵌套,导致代码不停地缩进(不是很美观,代码又很长)。
(2)需要在不满足条件是加上return语句,马上返回,这样导致有多少if语句就有多少return语句,
     代码也很长

我现在想出这么一种方法,用BOOL(宏定义,为0和1)类型来解决。

一个例子:

BOOL GetData(char * lpszFileName)
{
    LONG hf;   
    BOOL bResult;

    char szSender[12];
    char szReceiver[12];

    bResult = (-1 != (hf == open(lpszFileName, "r", O_BINARY | 0_RDONLY)));  //(1)
    bResult = bResult && (12 = read(hf, szSender, 12));                      //(2)
    bResult = bResult && (12 = read(hf, szReceiver, 12));                    //(3)

    //下边可能还有好多if语句

    if (-! != hf)
    {
        close(hf);
    }

    return bResult;
}
  

在(1)行中,如果文件打开失败,并没有来立即退出,而是继续执行(2),因为有bResult这个条件在,会保证如果上一步正确,程序会继续执行下一步操作。这样会避免上面提到的问题,但是可能会导致执行效率低些,可是代码缩紧这个问题可以解决了。
 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值