讲一下条件的短路特性,在表达式中从前往后,只要有一个能决定整个表达式真假之后,就不往后判断了
举个例子
(1>2 && 3>2) 看到1>2 就已经能知道表达式1>2 && 3>2为假就不再往后判断了
(3>2 || 9>4) 看到3>2就已经能知道表达式3>2 || 9>4为真,就不再往后判断了
看这样一个例子
1 a = 8; 2 b = 9; 3 if(a-b>0 && m[a-b]==5){ 4 ...... 5 }
数组的方括号里必须是非负数,如果没有这个短路特性,就会出现m[-1]这种情况,程序直接就崩溃了。也就是说,如果代码写成了下边这种形式,就会出现m[-1]。
1 a = 8; 2 b = 9; 3 if(m[a-b]==5 && a-b>0){ 4 ...... 5 }
以上是短路特性的一个体现。