我想知道如何在循环时每次修改变量值。在循环期间更改变量值
请指导我在下面的代码中做错了什么。
$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
我想知道如何在循环时每次修改变量值。在循环期间更改变量值
请指导我在下面的代码中做错了什么。
$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
你是不是改变你的循环中的amount
,因此你总是得到的结果为450表格此声明:
$a = $amount - 50;
它评估所有的时间as $ a = 500 - 50 = 450
更改您的代码像这样:
$amount = 500;
while ($amount > 0) {
$a = $amount - 50;
echo $a . "<br>";
$amount = $amount - 50;
}
有点丑陋,比我希望的要好,但+1是第一个真正解释问题的人,而不是告诉OP要输入什么。 :P – cHao
@cHao我完全同意丑陋的部分:-) –
应该
$amount = 500;
while ($amount > 0) {
$amount = $amount - 50;
echo $amount . "<br>";
}
试试这个
$a = $amount - 50;
$amount = $a;
echo $a . "<br>";
,而不是
$a = $amount - 50;
echo $a . "<br>";
$amount = 500; // You have assigned $amount = 500
while ($amount > 0) {
$a = $amount - 50;
echo $a . "<br>";
}
现在while $ amount> 0此循环运行。每次循环运行都没有LHS上的声明。这是$金额没有被改变,但总是被引用。
要改变已量
$amount = $amount - 50; // 500 -50 = 450, next loop 450 - 50 = 400, next loop 400-50=350 and so on
'440 - 50 = 300'? :| – bystwn22
@ bystwn22嘿,停止喝酒。这是一个错字 –
你必须改变环路内$量的值直到它保持与初始化相同的值
$amount = 500;
while ($amount > 0) {
$amount = $amount - 50;
echo $amount . " ";
}
现在,您会收到以下结果,你的愿望
450 400 350 300 250 200.....
几个这里提到如何让你的while
循环的工作权问题的答案。不过,你知道,还有更好的方法。
while
是一个较低级别的控制结构,当您需要灵活性时可以。例如,对于不知道提前迭代次数的循环而言,它是很好的选择。
尽管如此,您已经知道了开始点和结束点。你想要的第一个数字是450,最后一个数字是50,每个数字比前一个数字少50。 for
是制造这种情况。
for ($amount=450; $amount>=50; $amount-=50) {
echo "{$amount}<br>";
}
它也是更独立的,更容易得到正确的,因为修改你的循环变量的所有代码都在一个地方。
你为什么标记这么多languagesssssss? – Ian
使用'$ amount = $ amount - 50' – 2013-08-20 06:39:06
'$ amount - = 50' – elclanrs