Jump to content

Boucle for sur un calcul mathématique ?


sandrinoo
 Share

Recommended Posts

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,

 

 

Edited by sandrinoo
Link to comment
Share on other sites

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,

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...