//第一种写法
for( $j = $i ; $j > 0 ; $j-- ){
if( $arr[$j] < $arr[$j-1] )
swap($arr[$j-1],$arr[$j]);
else
break;
}
//第二种写法
for( $j = $i ; $j > 0 && $arr[$j] < $arr[$j-1]; $j -- ){
echo $j.'<p>';
swap( $arr[$j-1],$arr[$j]);
}
上面两种写法运行结果是等价的!!!
请问第二种写法中这个条件:$j > 0 && $arr[$j] < $arr[$j-1]
满足,执行{}
中的代码,为什么$j --
没有到0
呢?
是不是第二种写法满足条件只执行一次????
哈哈,分析了一下,弄明白了,完整的代码如下: