我想知道如何在循环时每次修改变量值。
请在下面的编码中指导我做错了什么。
$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
答案 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