Frequently Asked Java Program 05: Swap two integer variables without using third variable
Hello Folks,
As part of Frequently Asked Java Programs In Interviews For Freshers And Experienced, in this post we will see a Java program to swap values of two integer variables without using third variable.
Problem Statement:
Write a java program to swap values of two integer variables without using third variable.
Solution:
It is very commonly asked interview program. In Fact it is less program more mathematics.
- Let’s assume there are two variables with some values:
a =10
b=20
2. Now add a and b and store in a:
a = a+b => 10+20 => 30
b= 20
3. Now subtract b from a and store in b:
a= 30
b = a – b => 30-20 => 10
4. Now subtract b from a and store in a:
a= a – b = > 30-10 = > 20
b= 10
5. Notice here that both variables a and b have interchange their values.
Let’s convert above logic into a Java Program.
Java Program:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
import java.util.Scanner; public class SwappingTwoNumbers { public static void main(String[] args) { // taking input from user Scanner in = new Scanner(System.in); System.out.println("Enter the 1st number: "); int x = in.nextInt(); System.out.println("Enter the 2nd number: "); int y = in.nextInt(); // printing values before swap System.out.println("Before Swap: "); System.out.println("Value of x: "+x); System.out.println("Value of y: "+y); // swapping without using third variable x = x+y; y = x-y; x = x-y; // printing values after swap System.out.println("After Swap: "); System.out.println("Value of x: "+x); System.out.println("Value of y: "+y); } } |
Output:
1 2 3 4 5 6 7 8 9 10 11 12 |
[java] Enter the 1st number: 21 Enter the 2nd number: 33 Before Swap: Value of x: 21 Value of y: 33 After Swap: Value of x: 33 Value of y: 21 [/java] |
#HappyCoding
Try with XOR option too as + may result in overflow –
a=a^b ; ( a XOR B)
b=a^b; ( a XOR B)
a=a^b; ( a XOR B)
=====================
1 XOR 0 = 1
0 XOR 1= 1
0 XOR 0 = 0
1 XOR 1 =0
Good work
Nice..)))