在循环中更改变量值

时间:2013-08-20 06:38:07

标签: php

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

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

$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

7 个答案:

答案 0 :(得分:1)

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

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

但是,您已经知道了起点和终点。你想要的第一个数字是450,最后一个是50,每个数字比之前少50。对于这样的情况,for 制作

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

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

答案 1 :(得分:0)

应该是

$amount = 500;

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

答案 2 :(得分:0)

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

$a = $amount - 50; 

一直评估$ a = 500 - 50 = 450

更改您的代码:

$amount = 500;

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

}

答案 3 :(得分:-1)

试试这个

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

而不是

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

答案 4 :(得分:-1)

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

$amount = 500;

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

答案 5 :(得分:-1)

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

$amount = 500;

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

现在您可以根据需要收到以下结果

450 400 350 300 250 200.....

答案 6 :(得分:-2)

$amount = 500; // You have assigned $amount = 500

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

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

要改变你需要的金额

$amount = $amount - 50; // 500 -50 = 450, next loop 450  - 50 = 400, next loop 400-50=350 and so on