if 和 if 混用、if -- else 和if 混用时 与 if -- else if -- else 中的注意事项

今天刷LeetCode的时候遇到一个很需要注意的问题,之前一直没遇到,今天突然遇到了,就来记录一下。就是多个 if 语句 if -- else 语句和 if 语句在一起使用的时候,与那个if -- else if -- else 语句有点搞混淆了,具体情况如下:

图1

具体问题简化为 图1 所呈现的情况,判断 a (a=4)与 5 的大小关系。很显然会首先执行 if(a<5)语句,并且 把 a 重新赋值,即 a 此时值为 7(a=7)。那么 a=7 还会往下继续执行吗?答案是:不会。因为这三条语句是并列的,只会执行其中的一条。

但是我无意之间认为他和下面两种情况是等价的啦。具体如 图2 和 图3。

 图2

图3 

就是潜意识认为上面那种场景就等价于 if 语句去实现这三种情况(a大于5;a小于5;a等于5)。但是下面这两种场景和上面还是有很大的区别的,起初下面两种情况都会执行第一条 if(a<5)的语句,同时把 a 的值改为 7,但是这两种情况会接着往下执行,去判断 a 的值是否大于 5,由于第一条 if 语句执行完,已经把 a 的值赋值为 7 了,所以满足第二条语句,又会执行第二条 if(a>5),所以就会出现 图2图3 这两种输出。平时这些要想清楚,今天被这坑惨了,我这把他简化成上面的场景。分享给大家,避免踩坑。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值