2013-04-15 102 views
-7

我有2個變量,其值爲10.5。 我有一個總的200,我想有過2個變量循環通過有自己的價值觀增加他們,然後停止,當他們擊中200使用循環遞增值

難道這在for loop

做我最初看使用一個for循環使用:

for($i=$var1;$i<=$total;$i++) 
{ 

} 

這對一個變量工作正常。

感謝

+0

是其可能的,你有什麼問題嗎?你有沒有嘗試過實施它? – Baba

+0

是的,你可以,但你首先必須是80級才能做所有這些史詩般的事情.. – dbf

+2

而史詩'foreach'需要等級85 ..:| – dbf

回答

3

如果你把在for loop仔細看,它支持語法如下:

for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++); 

所以你基本上可以這樣做:

for($i = 1, $j = 0.5; $i < 200; $i++, $j += 0.5){ 
    // Do stuff 
} 

雖然我覺得這可能會混淆一些人,這將是更具可讀性是這樣寫的:

$j = 0; 
for($i = 0; $i < 200; $i++){ 
    // do stuff 

    $j += 0; 
} 

或者你也可以在每一步計算$j

$j = $i/2; // Before do stuff block 

但我認爲這會有更糟糕的表現,然後增加它;

+0

但我該如何做,如果在'var1 + var2 = 200'的循環中,然後停止循環? –

+0

@sipher_z你是認真的嗎? ($ i = 1,$ j = 0.5;($ i + $ j)<200; $ i ++,$ j + = 0.5){' – Vyktor

0

一切皆有可能在編程

做了$ I = 1;

for ($i=1;$<=200;$i++); 

和$我這樣做= 0.5

for($i=.5; $i<=200;$i+.5); 
1

他們是一些know issuesfloat這裏與增量的工作是live example顯示Output for 4.3.10 - 4.4.9, 5.0.2 - 5.5.0beta2影響

您可以使用printf部分地解決這個問題或簡單的轉換爲整數,然後返回到浮

$var = 0.5; 
for($i = 0; $i < 200; $i += $var) { 
    printf("%.1f\n", $i); 
}