今天看到了一道题,觉得比较有意思$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('-');}不过听说还有好多解法,希望知道的朋友能够列举出来,开开眼界!!!

解决方案 »

  1.   

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

  2.   

    楼上的朋友试了没有,知道for语句是怎么执行的么
      

  3.   


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

  4.   


    没有,你说是死循环就考虑for括号里面的东西了,没看别的地方。
    再说我觉得从40减到20也没啥问题嘛
      

  5.   


    呵呵,关键是那样弄的话,for循环就不执行了,到了判断那里就过去了
      

  6.   

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

  7.   

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

  8.   

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

  9.   

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

  10.   

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

  11.   


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