日期:2014-05-17  浏览次数:20528 次

一道for循环题
  今天看到了一道题,觉得比较有意思

$n = 20;
for($i = 0; $i < $n; $i--) {
    var_dump('-');
}

说是,上面那段代码修改或是增加一处,循环体内执行二十次,明眼人都看出来,上述代码是死循环的,下面是几个方法
1、

$n =20;
for ($i = 0; -$i < $n; $i --) {
    var_dump('-');

}

2、

$n = 20;
for ($i = 0; $i < $n; $i ++) {
    var_dump('-');
}

3、

$n =20;
for ($i = 0; $i < $n; $n --) {
    var_dump('-');

}

不过听说还有好多解法,希望知道的朋友能够列举出来,开开眼界!!!

------解决方案--------------------

$n =20; for ($i = 0; $n < $i; $n --) {
     var_dump('-');   
}
 

------解决方案--------------------
$n =20; 
for($i = 0; $i*($i+$n) < $n; $i--) {
    var_dump('-');
}

------解决方案--------------------
$n =20; 
for($i = 0; $i < $n*($i+$n); $i--) {
    var_dump('-');
}


这些都可以id,会是改或加都可以,那就可以运用很多公式放在条件那里的
------解决方案--------------------
$n =20;
for ($i = 0; -$i < $n; $i --) {
    var_dump('-');
 
}
------解决方案--------------------

$n = 20; 
for($i = 0; ($i*$i) < $n; $i--) 
{     
    var_dump('-');
}


$n = 20; 
for($i = 0; abs($i) < $n; $i--) 
{     
    var_dump('-');
}