关于if,if-else的使用

今天在写题的时候写了这样一段代码

错误:
if(visited_count[i]%2 != 0) i = nextVisit[i];
if(visited_count[i]%2 == 0) {
      i = (i+1) % n;
 }
 正确:
 if(visited_count[i]%2 != 0) i = nextVisit[i];
 else {
      i = (i+1) % n;
}

本意是:如果一个数为奇数,对i执行相应的逻辑,如果是偶数的化执行另一个逻辑。但是在执行的时候预期结果和我想的不一样,问题就出在两个if的使用上,如果我想实现原有的逻辑,应该用if-else才对,因为if-else执行的是一段逻辑,当其中一个条件执行后,其它的条件就不再执行,而多个if执行的是多个逻辑,在上面的代码中,如果第一个条件执行后,i被修改后如果又满足第二个条件,那就会继续执行,这违背了我们的执行目标

因此,虽然使用多个if对于代码来说可读性更好,但是涉及到对某个变量进行判断且修改的操作,应当使用if else,要区分好二者

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值