-1

我想知道每次循环时如何修改变量值。

请指导我在下面的编码中做错了什么。

$amount = 500;

while ($amount > 0) {
$a = $amount - 50;
echo $a . "<br>";
}

我收到这个:

450 450 450 450 450 450 450 450 450

但我想要那个:

450 400 350 300 250 200 150 100 50
4

7 回答 7

1

这里的一些答案提到了如何让你的while循环正常工作。只是让你知道,不过,有一个更好的方法。

while是一个较低级别的控制结构,当您需要灵活性时也可以。例如,它适用于您事先不知道迭代次数的循环。

但是,在这里,您已经知道起点和终点。你想要的第一个数字是 450,最后一个是 50,每个数字都比前一个数字少 50。 for这样的情况而设计的。

for ($amount=450; $amount>=50; $amount-=50) {
    echo "{$amount}<br>";
}

它也更加独立,并且更容易正确,因为修改循环变量的所有代码都在一个地方。

于 2013-08-21T13:37:20.940 回答
0

应该

$amount = 500;

while ($amount > 0) {
$amount = $amount - 50;
echo $amount . "<br>";
}
于 2013-08-20T06:40:11.663 回答
0

您没有更改amount循环中的 the ,因此您总是从以下语句中获得 450 的结果:

$a = $amount - 50; 

它始终评估为 $a = 500 - 50 = 450

像这样更改您的代码:

$amount = 500;

while ($amount > 0) {
$a = $amount - 50;
echo $a . "<br>";
$amount  = $amount - 50;

}
于 2013-08-20T06:42:07.243 回答
-1

试试这个

 $a = $amount - 50;
 $amount = $a;
 echo $a . "<br>";

代替

$a = $amount - 50;
echo $a . "<br>";
于 2013-08-20T06:40:27.427 回答
-1

Juned 已经解释了发生了什么,我发布了一个稍微小一点的代码版本

$amount = 500;

while ($amount > 0) {
   echo ($amount -= 50) . "<br />";
}
于 2013-08-20T06:50:10.430 回答
-1

您已经在循环内更改了 $amount 的值,直到它保持与初始化相同的值

$amount = 500;

while ($amount > 0) {
$amount = $amount - 50;
echo $amount . " ";
}   

现在您会收到您想要的以下结果

450 400 350 300 250 200.....
于 2013-08-20T06:55:41.407 回答
-2
$amount = 500; // You have assigned $amount = 500

while ($amount > 0) {
$a = $amount - 50;
echo $a . "<br>";
}

现在当 $amount > 0 这个循环运行。每次循环运行时,LHS 上都没有语句。那就是 $amount 没有被改变,但总是被引用。

要更改金额,您必须

$amount = $amount - 50; // 500 -50 = 450, next loop 450  - 50 = 400, next loop 400-50=350 and so on
于 2013-08-20T06:43:30.337 回答