多个平行if使用时末尾的else也会执行

编程过程中的细小问题防不胜防
多个平行if使用时末尾的else也会执行,会造成程序错误。

if(oeo->num==2)
    {   
            if(oeo->cmdtcon==1){ write_reg(oeo->pnum,REG_CON,0x0f);}
			if(oeo->cmdtcon==0){ write_reg(oeo->pnum,REG_CON,0x00);}
			if(oeo->cmdtcon==3) { read_reg(imod,REG_CON,&value);	
						     if(value==0x0f){oeo_write_reg(oeo->num,REG_CON,0x00);}
						     else{oeo_write_reg(oeo->num,REG_CON,0x0f);}
								}
			else {goto exit_1;}
}
			

在使用时,如果oeo->cmdtcon不等于3的话,最后都会转移至exit_1函数,违背了编程者的本意,究其原因,else只和最近的一个if配对,所以在使用多个平行if时尽量不使用else,或者改为else if形式。

if(oeo->num==2)
    {   
            if(oeo->cmdtcon==1){ write_reg(oeo->num,REG_CON,0x0f);}
			else if(oeo->cmdtcon==0){ write_reg(oeo->num,REG_CON,0x00);}
			else if(oeo->cmdtcon==3) { read_reg(imod,REG_CON,&value);	
						 if(value==0x0f){oeo_write_reg(oeo->num,REG_CON,0x00);}
						 else{oeo_write_reg(oeo->num,REG_CON,0x0f);}
								}
		    else {goto exit_1;}
    }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值