我将$num设置为0开始,总的过桥数是正确的,23次,但是中间echo循环就变成了第0次过桥,不符合逻辑,如果$num初始值设置为1,那么中间循环是正确的,但是总共的过桥数就多了一次,谢谢大家了。<?php
header("Content-type: text/html; charset=utf-8");
for ($money=100000,$num=1;$money>=5000;$num++) { 
if ($money>50000) {
$money=$money-($money*0.05);
}else{
$money=$money-5000;
}
echo "第".$num."次过桥,还剩".$money."元.<br>";
}
echo "所以总共过了".$num."次桥";
?>  

解决方案 »

  1.   

    用第二种方案$num=1; 最后
    echo "所以总共过了".--$num."次桥";// 不就完事了?
      

  2.   

    $num我定义的意思就是过桥的次数,最后$num-1,前端正确了,但是程序的意思是过桥数减一了。不知道是不是钻牛角尖了
      

  3.   

    <?phpheader("Content-type: text/html; charset=utf-8"); for ($money=100000,$num=0;$money>=5000;) { 
    $num++
    if ($money>50000) { $money=$money-($money*0.05); }else{ $money=$money-5000; } echo "第".$num."次过桥,还剩".$money."元.<br>"; } echo "所以总共过了".$num."次桥";?>  
    这样好啦~
      

  4.   

    这样就可以了。
    <?php
    header("Content-type: text/html; charset=utf-8");    for ($money=100000,$num=0;$money>=5000;) { 
            $num++;
            if ($money>50000) {            $money=$money-($money*0.05);        }else{            $money=$money-5000;        }        echo "第".$num."次过桥,还剩".$money."元.<br>";    }    echo "所以总共过了".$num."次桥";
    ?>
      

  5.   

    因为最后一次num++后,是没有符合条件的。
      

  6.   

    for ($money=100000,$num=0;$money>=5000;$num++) { 
      if ($money>50000) {
        $money=$money-($money*0.05);
      }else{
        $money=$money-5000;
      }
      echo "第".($num+1)."次过桥,还剩".$money."元.<br>";
    }
    echo "所以总共过了".$num."次桥";
      

  7.   

    如果你要较真,那就这样写
    for ($money=100000,$num=0;$money>=5000;) {  if ($money>50000) { $money=$money-($money*0.05); }else{ $money=$money-5000; }
    $num++;
    echo "第".$num."次过桥,还剩".$money."元.<br>"; }