2011-08-15 8 views
1

素朴な疑問:ループ問題 "のための" PHP

なぜこれがある:

for($k=1;$k<=10;$k+2) { } 

が無限ループを与えますか?私が$ k + 2で$ k + 2を変更すると、うまく動作します。

どのように修正できますか?

+0

@Shef $ kは$ kが更新されていないため、この場合は常に1になります – Jeffrey04

+0

あなたはどちらも正しいです、ちょっと起きました、そのような初期の考え... :) – Shef

答えて

13
$k+2 

を(私はどちらかのペアで仕事をしたり、その場所で価値を損なうために、この機能を必要とするので、私は損なう番号の10を変更することはできません)これは$kの値は変更されませんので、それは決して10より高いおそらくあなたは意味の取得:

$k+=2 

は、どの2で(forループの各の終わりに)評価された式の取得のたびに $kが増加します。

+0

クイックアンサーに感謝! –

+0

@Adam Strudwick:どうぞよろしくお願いいたします。 – hakre

4
for($k=1;$k<=10; $k = $k+2) { } 

または

for($k=1;$k<=10; $k += 2) { } 
4

それは$ kが更新されないため、この代わりに

for($k = 1; $k <= 10; $k = $k + 2) {} 

または

for($k = 1; $k <= 10; $k += 2) {} 

参照してみてください無限ループです:PHP operators