Aller au contenu

Boucle for sur un calcul mathématique ?


Sujets conseillés

Posté (modifié)

Bonjour à tous,

 

J'ai une opération mathématique de ce style (chaque résultat étant utilisé dans le calcul suivant) :

 

$res1=$nb[1]-$nb[0];
$res2= $nb[2]-$res1;
$res3= $nb[3]-$res2;
$res4 etc...

 

Comment fait on ce genre de chose dans une boucle for :

for ($i=0;$i<strlen($nb)-1;$i++)

{

//quoi mettre ici ?

}

 

 

Pourriez-vous m'aider s'il vous plaît ?

 

Je vous remercie d'avance pour votre réponse,

 

 

Modifié par sandrinoo
Posté

Hello,

 

Si tu souhaites n'utiliser que une variable qui se met à jour, tu peux faire la boucle suivante:

 

<?php

$result = $nb[0];

for ( $i = 1; /* notez que l'on commence à 1 car 0 est déjà assigné au dessus */ $i < size($nb); $i++) {
  $result -= $nb[$i];
}

 

Une fois ce calcul terminé, $result contiendra la valeur finale décomptée de chaque élément de $nb, avec comme valeur initiale $nb[0].

 

Tu peux également afficher la valeur lors de chaque itération dans la boucle si tu le préfères.

Si tu souhaites stocker chaque valeur dans une variable à la place, remplace $result par un tableau ce qui te permettra, pour chaque index de stocker la valeur précédente.

 

Bien à toi,

Posté

Ah merci beaucoup Aenoa ! Super !

Je n'avais pas pensé aux opérations d'affectation, que je n'ai jamais utilisé d'ailleurs => bien pratique.

 

Juste une chose, la soustraction ne se fait pas dans le bon sens : ta réponse génère pour la soustraction un '1èrePosition-2èmePosition' alors que j'aurais voulu l'inverse '2èmePosition-1èrePosition'.

C'est possible ça avec une modification simple ?

 

Grand merci d'avance

 

Posté

Bonjour,

 

Il suffit de ne pas utiliser `-=` mais de réassigner `$result` avec le résultat de `$nb[$i] - $result`

 

 

Posté

Ca fonctionne ! Merci beaucoup Aenoa !

Le code est ultra simple mais je suis pas sûre que j'aurais trouvé toute seule...

 

Encore merci, salutations et bonne journée Aenoa !

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...