2013-08-20 70 views
-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 
+3

你为什么标记这么多languagesssssss? – Ian

+2

使用'$ amount = $ amount - 50' – 2013-08-20 06:39:06

+2

'$ amount - = 50' – elclanrs

回答

0

你是不是改变你的循环中的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

有点丑陋,比我希望的要好,但+1是第一个真正解释问题的人,而不是告诉OP要输入什么。 :P – cHao

+0

@cHao我完全同意丑陋的部分:-) –

0

应该

$amount = 500; 

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

试试这个

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

,而不是

$a = $amount - 50; 
echo $a . "<br>"; 
-2
$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 
+0

'440 - 50 = 300'? :| – bystwn22

+0

@ bystwn22嘿,停止喝酒。这是一个错字 –

-1

Juned已经解释这是怎么回事,我张贴略小的代码版本

$amount = 500; 

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

OP要450 400 350 300 250 200 150 100 50,而不是-50(你的答案返回)。 Downvoted。发布前测试。 –

+0

它更小'while($ amount> 0){echo($ a =($ amount - = 50))。“
”; }':\ – bystwn22

+0

@ bystwn22我不知道你为什么要在那里放一个'a' – DevZer0

-1

你必须改变环路内$量的值直到它保持与初始化相同的值

$amount = 500; 

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

现在,您会收到以下结果,你的愿望

450 400 350 300 250 200..... 
1

几个这里提到如何让你的while循环的工作权问题的答案。不过,你知道,还有更好的方法。

while是一个较低级别的控制结构,当您需要灵活性时可以。例如,对于不知道提前迭代次数的循环而言,它是很好的选择。

尽管如此,您已经知道了开始点和结束点。你想要的第一个数字是450,最后一个数字是50,每个数字比前一个数字少50。 for制造这种情况。

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

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