Метод swap

Часто в процессе решения той или иной задачи, две переменные должны обменяться значениями. Есть два варианта реализации обмена значениями:

Вариант 1: обмен значениями с использованием временной переменной

Вводим временную переменную, которая на время придержит значение из одной переменной:

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

Например:

public class ChangeValues1 {
    public static void main(String[] args) {
        int a = 3;
        int b = 5;

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

        System.out.println("a = " + a);
        System.out.println("b = " + b);
    }
}

Вариант 2: обмен значениями без использования временной переменной

Третья переменная не вводится, обмен достигается путем сложения и вычитания:

a = a + b;
b = a - b;
a = a - b

Например:

public class ChangeValues2 {
    public static void main(String[] args) {
        int a = 3;
        int b = 5;

        a = a + b; // a = 8, b = 5
        b = a - b; // a = 8, b = 3
        a = a - b; // a = 5, b = 3

        System.out.println("a = " + a);
        System.out.println("b = " + b);
    }
}
Read also:
Comments