-1

I've seen a lot of techniques for swapping two variables without using a third. Swap two variables without using a temp variable How to swap two numbers without using third variable? [duplicate] Swap 2 values of 2 variables without using a third variable.

  • You use a third variable or you manipulate the specific object. If you want a broad solution then you need to use a third/temp variable in one form or another. For specific data types there are specific solutions, for example you could use math with an integer: x = 1, y = 3, x = x + y, y= x - y, x =x - y – sorifiend Jun 23 '21 at 03:45
  • Does this answer your question? [Swapping two variable value without using third variable](https://stackoverflow.com/questions/1826159/swapping-two-variable-value-without-using-third-variable) – MarsAtomic Jun 23 '21 at 04:26
  • 1
    You are obliged to research your question before you post. You are unlikely to be the only person ever to encounter any particular problem, and there's a good chance that your question has already been asked on this site, not to mention the numerous other resources freely available to you on the Internet. – MarsAtomic Jun 23 '21 at 04:28
  • It seems you already found at least three possible answers. What is your question now? – Thomas Kläger Jun 23 '21 at 05:02

1 Answers1

3

I will list three different techniques you can use to swap two numbers without using temp variable in Java:

1. Swapping two numbers without using temp variable in Java

    int a = 10;
    int b = 20;
    
    System.out.println("value of a and b before swapping, a: " + a +" b: " + b);
    
    //swapping value of two numbers without using temp variable
    a = a+ b; //now a is 30 and b is 20
    b = a -b; //now a is 30 but b is 10 (original value of a)
    a = a -b; //now a is 20 and b is 10, numbers are swapped
    
    System.out.println("value of a and b after swapping, a: " + a +" b: " + b);

2. Swapping two numbers without using temp variable in Java with the bitwise operator

int a = 2; //0010 in binary
int b = 4; //0100 in binary
      
System.out.println("value of a and b before swapping, a: " + a +" b: " + b);
       
//swapping value of two numbers without using temp variable and XOR bitwise operator     
a = a^b; //now a is 6 and b is 4
b = a^b; //now a is 6 but b is 2 (original value of a)
a = a^b; //now a is 4 and b is 2, numbers are swapped
      
System.out.println("value of a and b after swapping using XOR bitwise operation, a: " + a +" b: " + b);

3. Swapping two numbers without using temp variable in Java with division and multiplication

    int a = 6;
    int b = 3;
    
    System.out.println("value of a and b before swapping, a: " + a +" b: " + b);
    
    //swapping value of two numbers without using temp variable using multiplication and division
    a = a*b; //now a is 18 and b is 3
    b = a/b; //now a is 18 but b is 6 (original value of a)
    a = a/b; //now a is 3 and b is 6, numbers are swapped
    
    System.out.println("value of a and b after swapping using multiplication and division, a: " + a +" b: " + b);

You could also do an action like this:

import java.util.Scanner;
 
public class Main {
 
  public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
 
    System.out.println("Enter x:");
    int x = scanner.nextInt();
 
    System.out.println("Enter y:");
    int y = scanner.nextInt();
 
    System.out.println("Before swap: x=" + x + ", y=" + y);
 
    x = x + y;
    y = x - y;
    x = x - y;
 
    System.out.println("After swap: x=" + x + ", y=" + y);
  }
}
Dharman
  • 30,962
  • 25
  • 85
  • 135
troy
  • 76
  • 3