Jak zamienić wartości 2 zmiennych bez zmiennej tymczasowej?

Pamiętacie pewnie z Algorytmów czy Metod Programowania, jak trzeba było zamieniać wartości zmiennych miejscami, np. w algorytmach sortujących. Pisało się wtedy kod w stylu:

Poniżej prezentuje znalezione przeze mnie sposoby, jak zamienić wartości dwóch zmiennych bez użycia zmiennej pomocniczej.

Sposób z dodawaniem i odejmowaniem

Po uruchomieniu otrzymujemy:

Sposób z mnożeniem i dzieleniem

Po uruchomieniu otrzymujemy:

Sposób z operatorem bitowym XOR

Po uruchomieniu otrzymujemy:

Ostatni sposób jest najszybszy i najmniej newralgiczny. Mimo wszystko nie polecam używania powyższych konstrukcji w kodzie produkcyjnym, gdyż komplikują kod. Można je traktować jako ciekawostkę, chociaż słyszałem, że podobne pytania pojawiają się podczas rozmów rekrutacyjnych.

5 Responses to “Jak zamienić wartości 2 zmiennych bez zmiennej tymczasowej?”

  • Nowaker pisze:

    Można po prostu:

    Ale takie rzeczy tylko w normalnych językach, a nie w Javie. ;)

    • Barista pisze:

      W Perlu można np. tak:

      a w PHP:

      :)

    • Barista pisze:

      albo ASM:

      :)

Leave a Reply