Echange de 2 valeurs

 

C'est un problême classique que tous les débutants rencontrent. Mais c'est aussi un piège dans lequel beaucoup tombent en oubliant que le caractère = est un opérateur d'affectation. On échange la position en mémoire.

Solution 1: utilisation d'une variable intermédiaire.

Le passage par référence est INDISPENSABLE sinon aucune valeur ne sera échangée.
function swap( &$x , &$y )
{
       $tmp = $x; // x est stocké dans tmp
       $x =$y; // y est stocké dans x
       $y = $tmp; // tmp (qui posséde la valeur x de départ) est stocké dans y
}

Solution 2 : utilisation d'opérations élémentaires.

function swap( &$x , &$y )
{
       $x = $x + $y; //stocke la valeur(x+y) dans x
       $y = $x - $y; //stocke la valeur (x+y) - y dans y donc y a la valeur x
       $x = $x - $y; //stocke la valeur (x+y) - valeur stockée dans y (x!) ⇒ y
}

 


Page chargée en 0.015 sec.

Dernière Modification : Lun 13 Janvier 2025 14:22
Copyright © 1999-2025 Jean-Paul Molina Tous droits réservés.

 

to Google