2013-04-15 4 views
-7

J'ai 2 variables qui ont des valeurs de 1 et 0.5. J'ai un total de 200, que je veux avoir une boucle à travers les 2 variables en les augmentant par là ses propres valeurs et arrêter quand ils ont frappé 200incrémenter des valeurs en utilisant des boucles

pourrait-il être fait dans un for loop

J'ai d'abord regardé en utilisant une boucle for en utilisant:

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

} 

Cela a fonctionné correctement pour l'une des variables.

Merci

+0

Oui son possible, avez-vous des problèmes? avez-vous essayé de l'implémenter? – Baba

+0

Oui vous pouvez, mais vous devez d'abord être au niveau 80 pour faire toutes ces choses épiques .. – dbf

+2

Et l'épopée 'foreach' requiert le niveau 85 ..: | – dbf

Répondre

3

Si vous prenez regarder de près for loop, il prend en charge la syntaxe comme ceci:

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

Ainsi, vous pouvez essentiellement faites ceci:

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

Bien que je pense que cela peut confondre certaines personnes et ce sera plus facile à lire pour l'écrire de cette façon:

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

    $j += 0; 
} 

Ou vous pouvez aussi calculer $j à chaque étape:

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

Mais je pense que cela aura une performance pire alors il suffit de l'incrémenter;

+0

Comment puis-je faire ça, que dans la boucle si 'var1 + var2 = 200' alors arrêter la boucle? –

+0

@sipher_z êtes-vous sérieux? 'pour ($ i = 1, $ j = 0,5; ($ i + $ j) <200; $ i ++, $ j + = 0,5) {' – Vyktor

0

Tout est possible dans la programmation

font cela pour $ i = 1;

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

et cela pour $ i = .5

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

Ils sont quelques-uns know issues travailler avec incrément de float ici est un live example qui montre Output for 4.3.10 - 4.4.9, 5.0.2 - 5.5.0beta2 affecté

Vous pouvez utiliser printf pour corriger partiellement ce ou convertir simplement en entier puis de nouveau à flotter

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