Поменять значения двух переменных

Рассмотрим, как поменять местами значения двух переменных в коде программы. Статья предназначена тем, кто только начинает делать первые шаги в программировании.

Как только вы начнете писать свою второю в жизни программу (первая – вывод слов Hello World), вы столкнетесь с необходимостью обмена значениями между двумя числовыми переменными, поскольку манипуляции с данными непременно это предполагают. В примерах кода, которые приводятся в статье мы оперируем с целочисленными переменными типа int, но данные примеры легко адаптировать под любой вид числовых переменных: byte, long, float, double и т.п. Для этого вам будет достаточно заменить все ключевые слова int, на требуемый тип данных.

Примеры подходят и будут работать во всех Си-подобных языках программирования: C, C++, C#; а также в языке Java.

Поменять значения двух переменных

Прежде чем писать программный код, давайте подумаем, как поменять значения двух переменных в принципе. Решим данную задачу у себя в голове. А затем формализуем выработанный алгоритм действий.

Начнем с тезиса о том, что переменные в программе имеют содержимое. Они содержат информацию. Для того, чтобы провести какую-либо аналогию с жизнью, нужно подумать: а какие предметы что-нибудь в себе содержат? Первое, что приходит на ум – это ёмкость с жидкостью.

Пусть у нас есть два стакана: в одном налито молоко, а в другом кока-кола. Как нам перелить содержимое одного стакана в другой (нельзя же смешивать эти два совершенно несовместимых продукта) [заметили аналогию? ведь содержимое двух переменных нам тоже нужно поменять местами]? Ответ очевиден – понадобится третий (пустой) стакан. С помощью него удастся перелить содержимое одного стакана в другой. Вот так:

  1. Перелить молоко из первого стакана в третий.
  2. Перелить кока-колу из второго стакана в первый.
  3. Из третьего стакана перелить молоко во второй стакан. Готово!

Иллюстрация действий приводится на рисунке ниже.

Поменять значения двух переменных - аналогия с жидкостью

Возвращаясь к программированию, делаем вывод, что для того, чтобы поменять значения двух переменных, понадобится промежуточная третья.

Пусть даны переменные a и b, и их значения нужно поменять местами. Нам понадобится промежуточная временная третья переменная, назовем её temp (сокращение от английского слова temporary – временный). Чтобы выполнить замену, придется также выполнить три действия:

  1. Присвоим переменной temp значение из переменной a.
  2. Присвоим a значение b.
  3. Присвоим b значение переменный temp. Готово!

Реализуем описанный выше алгоритм действий и составим программу обмена значениями двух переменных величин. Ниже представлен её код:

Поменять значения двух переменных не используя третью

Но переменные в программировании это всё-таки не стаканы, это вещь в некоторой степени абстрактная, и приведенная выше аналогия не корректна полностью, поскольку существует способ обмена значений двух переменных без использования третьей. Как же это сделать?

Объявим a = 3, b = 5. Чтобы поменять значения этих переменных, необходимо выполнить четыре операции (но не придётся использовать промежуточную временную переменную), они приведены в таблице. В столбцах значений переменных намеренно представлены выражения (а не их результат) для большей наглядности.

Операция a b
a = a + b 3 5
b = b – a 3 + 5 5
b = -b 3 + 5 5 – 3 – 5 = -3
a = a – b 3 + 5 3
3 + 5 – 3 = 5 3

Формализуем табличные данные в виде кода:

Надеемся, что алгоритмическая последовательность действий, записанная в виде таблицы, а также программный код, помогли вам разобраться и понять, как поменять значения двух переменных без третьей.

Спасибо за прочтение статьи!

Поменять значения двух переменных
4.81 (96.13%) 31 votes

Поделиться в соц. сетях:

6 комментария(ев) к статье “Поменять значения двух переменных

  1. Владимир

    Добрый день, не пойму – зачем столько действий если можно
    a = 3;
    b = 6;

    b = a + b; 3+6=9
    a = b – a; 9-3=6
    b = b – a; 9-6=3

    a = 6;
    b = 3;

    1. admin Автор статьи

      Добрый день. У Вас совершенно правильный код. На одну операцию короче.
      Если сравнить с нашим кодом, то Вы шестую строку интегрировали в седьмую. А смысл, естественно, тот же самый.

  2. Андрей

    А как сделать, чтобы программа прочиталась? Что нужно писать во WriteLine-е?

    1. admin Автор статьи

      Например, так:

      Console.Write(“a = “);
      int a = Convert.ToInt32(Console.ReadLine());
      Console.Write(“b = “);
      int b = Convert.ToInt32(Console.ReadLine());

      int tmp;

      tmp = a;
      a = b;
      b = tmp;

      Console.WriteLine(“a = ” + a);
      Console.WriteLine(“b = ” + b);

Добавить комментарий для Олег Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">