今天刷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 这两种输出。平时这些要想清楚,今天被这坑惨了,我这把他简化成上面的场景。分享给大家,避免踩坑。