Comment puis-je somme les éléments dans une boucle php?
J'ai appris le PHP pour quelques jours et j'ai une embarrassante question facile. Je veux faire la somme des éléments dans un 500 élément de boucle. Je veux comprendre le total des 500 + 499 + 498, etc.
Voici mon code:
for ($i=1; $i<=500; $i++)
{
//echo $i . "<br />";
$total = 0;
$total = $total + $i;
return $total;
}
echo $total . "<br />";
?>
Ne pouvez pas comprendre ce que je fais mal.
Vous devez vous connecter pour publier un commentaire.
Sortir de l'initialisation et de l'instruction return de la boucle:
Vous pouvez également faire
ou faire le calcul l'ensemble sans
for
corps:et un couple de d'autres approches (Daniel solution est particulièrement agréable).
Les deux ci-dessus sont équivalents à ce que vous êtes probablement à la recherche pour
Comme l'a déjà souligné ailleurs, lorsque vous ne
$total = 0;
à l'intérieur de lafor
de la boucle, vous écrase la valeur précédente pour$total
et de mettrereturn
dans ce sera la fin de votre script à moins que la boucle est à l'intérieur d'une fonction.Il semble que vous simplement besoin de se déplacer à la
$total = 0;
ligne de votre boucle... Sinon, il sera mis à0
à chaque itération.Vous aussi besoin de se déplacer que
return $total;
ligne à l'extérieur, comme @Webnet a fait remarquer dans un commentaire ci-dessous.Notez également que vous pouvez faire le calcul dans la constante de temps sans itération à travers tous les numéros de la, par trouver la somme d'une suite arithmétique:
return $total
qui va casser la boucle.Votre code doit être...
return $total;
va casser la boucleEh bien, vous êtes la réinitialisation
$total
à zéro à chaque fois, et à l'aide dereturn
à l'extérieur d'une déclaration...De toute façon, la réponse est
(500*501)/2 = 250*501 = 125250
(mathématiques de base)Vous avez deux erreurs:
Tout d'abord, vous définissez la
$total
à 0 chaque fois que la boucle est répétée.Ensuite, vous utilisez
return
, ce qui se passe ici, c'est qu'il va annuler la poursuite de l'exécution, de sorte que la boucle fondamentalement juste a été exécuté une fois.De l'essayer.