Въведение в размяна на Java

Както всички знаем, че Java е един от най-актуалните езици, що се отнася до разработката на софтуер. Разбирането на някои нейни понятия, които често се използват, е много важно и може да помогне на програмиста да ги използва дори при решаване на големи проблеми. Размяната е една от концепциите, която често се използва в програмите. Размяна означава обмен на стойности на променливи. Прави се с данните в паметта. Размяна може да се извърши или с помощта на една временна променлива, или без да се използва временната променлива. Повечето от алгоритмите за сортиране и търсене използват подмяна на стойностите на променливи. В тази тема ще научим за Swapping в Java.

Размяна на две числа в Java

Нека да разгледаме с помощта на някакъв пример

Случай 1: Размяна на числа с помощта на временната променлива

public class Swap2Numbers
(
public static void main(String() args)
(
int num1=10;
int num2 =20;
// Printing values of numbers before swapping in order to see the change
System.out.println("Original values before swapping are:");
System.out.println("Value of number 1 is " +num1); System.out.println("Value of number 2 is " +num2);
// Value of num1, ie 10 is assigned to temp variable int temp = num1;
// Value of num2, ie 20 is assigned to num1 variable num1 = num2;
// Value of temp variable, ie 10 (assigned by num1) is assigned to num2
num2 = temp;
// Printing values of numbers after swapping in order to see the change
System.out.println("Values after swapping are:");
System.out.println("Value of number 1 is " +num1);
System.out.println("Value of number 2 is " +num2);
)
)

изход:

Оригиналните стойности преди размяна са:
Стойността на числото 1 е 10
Стойността на числото 2 е 20 Стойностите след размяна са:
Стойност на числото 1 е 20
Стойността на числото 2 е 10

обяснение

В горната програма имахме две променливи, наречени num1 и num2 със стойности съответно 10 и 20. Използва се временна променлива с темп на името на същия тип данни на променливите num1 и num2. Размената се обработва на 3 стъпки:

  1. Стойността на 'num1' (т.е. 10) е присвоена на временната променлива 'temp', така че сега стойността на 'temp' е 10.
  2. Стойността на 'num2' (т.е. 20) е присвоена на променливата 'num1', т.е. сега стойността на променливата 'num1' е 20.
  3. Стойността на 'temp' променлива (т.е. 10), зададена в стъпка 1, вече е присвоена на променлива 'num 2', т.е. стойността на променлива 'num2' става 10.

Накрая стойностите на променливите се разменят или обменят и разменените стойности се отпечатват на конзолата.

Случай 2: Размяна на две числа без използване на временната променлива

public class SwapNumbers
(
public static void main(String() args)
(
int num1= 10; int num2= 20;
// Printing values of numbers before swapping in order to see the change
System.out.println("Original values before swapping are:");
System.out.println("Value of number 1 is " +num1); System.out.println("Value of number 2 is " +num2);
num1 = num1- num2; num2 = num1 +num2;
num1 = num2- num1;
// Printing values of numbers after swapping in order to see the change
System.out.println("Values after swapping are:");
System.out.println("Value of number 1 is " +num1); System.out.println("Value of number 2 is " +num2);
)
)

изход:

Оригиналните стойности преди размяна са:
Стойността на числото 1 е 10
Стойността на числото 2 е 20 Стойностите след размяна са:
Стойност на числото 1 е 20
Стойността на числото 2 е 10

обяснение

В горния пример се следва проста математика за размяна на числата, която се прави на 3 стъпки:

  1. Стойността на num1 - num2 (т.е. 10-20 = -10) се съхранява в променливата 'num1'. Сега num1 = -10.
  2. Стойност на num1 + num2 (т.е. -10 + 20 = 10), съхранявана в променливата 'num2'. Сега num2 = 10.
  3. Стойността на num2 - num1 (т.е. 10 - (-10)) = 20) се съхранява в променливата 'num1'. Сега num1 = 20.

Размяна на три числа в Java

Нека да проучим размяната на три числа с помощта на някакъв пример

Случай 1: Размяна на числа без използване на временна променлива

public class Swap3Numbers
(
public static void main(String() args)
(
int num1= 10; int num2= 20; int num3= 30;
// Printing values of numbers before swapping in order to see the change
System.out.println("Original values before swapping are:");
System.out.println("Value of number 1 is " +num1);
System.out.println("Value of number 2 is " +num2); System.out.println("Value of number 3 is " +num3);
num1 = num1+ num2+ num3; num2 = num1- (num2+ num3); num3 = num1- (num2+ num3); num1 = num1- (num2+ num3);
// Printing values of numbers after swapping in order to see the change
System.out.println("Values after swapping are:");
System.out.println("Value of number 1 is " +num1);
System.out.println("Value of number 2 is " +num2);
System.out.println("Value of number 3 is " +num3);
)
)

изход:

Оригиналните стойности преди размяна са:
Стойността на числото 1 е 10
Стойността на числото 2 е 20
Стойността на числото 3 е 30 Стойностите след размяна са:
Стойността на числото 1 е 30
Стойността на числото 2 е 10
Стойността на числото 3 е 20

обяснение

В горния пример се следва проста математика за обмен на стойността на 3 променливи. Тя включва 4 стъпки, които са споменати по-долу:

  1. Стойността на num1 + num2 + num3 (т.е. 10 + 20 + 30 = 60) е присвоена на променлива 'num1'. Значи num1 = 60.
  2. Стойността на num1- (num2 + num3) (т.е. 60 - (20 + 30) = 10) е присвоена на променлива 'num2'. Значи num2 = 10.
  3. Стойността на num1- (num2 + num3) (т.е. 60 - (10 + 30) = 20) се присвоява на променлива 'num3'. Значи num3 = 20.
  4. Стойността на num1- (num2 + num3) (т.е. 60 - (10 + 20) = 30) се присвоява на променлива 'num1'. Значи num1 = 30.

Разменените стойности на 3 променливи се отпечатват на конзолата.

Случай 2: Размяна на 3 числа с помощта на временна променлива

public class Swap3Numbers
(
public static void main( String() args)
(
int num1=10; int num2 =20; int num3 =30;
// Printing values of numbers before swapping in order to see the change
System.out.println("Original values before swapping are:");
System.out.println("Value of number 1 is " +num1);
System.out.println("Value of number 2 is " +num2); System.out.println("Value of number 3 is " +num3);
int temp = num1; num1 = num2; num2= num3;
num3= temp;
// Printing values of numbers after swapping in order to see the change
System.out.println("Values after swapping are:");
System.out.println("Value of number 1 is " +num1);
System.out.println("Value of number 2 is " +num2); System.out.println("Value of number 3 is " +num3);
)
)

изход:

Оригиналните стойности преди размяна са:
Стойността на числото 1 е 10
Стойността на числото 2 е 20
Стойността на числото 3 е 30 Стойностите след размяна са:
Стойност на числото 1 е 20
Стойността на числото 2 е 30
Стойността на числото 3 е 10

обяснение

В горната програма смяната на 3 числа се извършва в 4 прости стъпки и се използва временна променлива 'temp':

  1. Стойността num1 (т.е. 10) се присвоява на temp променливата. И така, сега темпът има стойност 10.
  2. Стойността на променлива num2 (т.е. 20) е присвоена на num1, така че стойността num1 е 20 сега.
  3. Стойност, ако променлива num3 (т.е. 30) е присвоена на променлива num2, така че num2 има стойност 30.
  4. Стойността на променливата temp (т.е. 10) е присвоена на променливата num3, така че num3 вече има стойност 10.
    Стойностите на 3-те числа се разменят и отпечатват на конзолата.

заключение

Както беше обяснено по-горе, размяната се извършва по гореспоменатите два начина. Въпреки че замяната в Java може да се извърши и чрез използване на референтен разговор, който използва адреса на числата, за да оцени стойностите.

Препоръчителни статии

Това е ръководство за размяна в Java. Тук обсъждаме размяната на две числа и три числа в Java със и без използване на временни променливи. Може да разгледате и следните статии, за да научите повече -

  1. CardLayout в Java
  2. Размяна в Python
  3. Жизнен цикъл на нишката в Java
  4. Сортиране на селекцията в Java
  5. Как работи размяна в C ++?
  6. Размяна в PHP