In this article we will learn how to swap two values without
creating a new storage location using C#, this type of question might
be asked by an interviewer in a .Net position related interview.
My
intent for this article is to explain how to answer a question that is
often asked in an interview, which is: Write a program to swap two
values using C# without creating the new storage location. A candidate
new to the interview can become confused because the first problem is
the candidate does not even know which keyword to use for that, so how
will he or she know how to write the program?
So
considering the preceding requirement I have decided to write this
article with the basics and especially focusing on the beginner, student
and whoever might encounter this type of question in an interview.
So let us start with the basics.
What does swapping values mean?
When the values of two variables are exchanged at run time it is called swapping of the two values.
Example:
a=100;
b=500;
After swapping:
a=500;
b=100;
Conditions to swap values
The following re the conditions to swap values:
- The values of two variable are swapped with each other without creating a new storage location for the variables
- After the swapping of the values of the two variables then before swapped values are need to be remain in that variable.
Refer to my following article to learn the details about the ref parameter:
Next I will explain how to do it step-by-step, as in the following:
- Open Visual Studio from "Start" - - "All programs" -- "Microsoft Visual Studio".
- Then go to to "File" -> "New" -> "Project..." then select "Visual C#" -> "Windows" -> "Console application".
- Then specify the name, "SwappingNum", or whatever name you wish and the location of the project and click on the "OK" button. The new project is created.
static void SwapNum(ref int x, ref int y) { int tempswap = x; x = y; y =tempswap; }
In
the preceding method we are using the ref parameter to take the
reference of values from other variables that do not create any new
storage location.
Now create the calling method as:
static void Main(string[] args) { int a = 100; int b = 500; Console.WriteLine( "Value of a and b before sawapping"); Console.WriteLine(); Console.WriteLine("a=" + " " + a); Console.WriteLine( "b=" + " " + b); SwapNum(ref a, ref b); Console.WriteLine(); Console.WriteLine("Value of a and b after sawapping"); Console.WriteLine(); Console.WriteLine("a=" + " " + a); Console.WriteLine("b=" + " " + b); Console.ReadLine(); }
In
the preceding main calling method we are calling the SwapNum method and
passing the reference of a and b variable values to the method, now
the entire code will like as follows:
using System; namespace SwappingValues { class Program { static void SwapNum(ref int x, ref int y) { x = y; y = x; } static void Main(string[] args) { int a = 100; int b = 500; Console.WriteLine( "Value of a and b before sawapping"); Console.WriteLine(); Console.WriteLine("a=" + " " + a); Console.WriteLine( "b=" + " " + b); SwapNum(ref a, ref b); Console.WriteLine(); Console.WriteLine("Value of a and b after sawapping"); Console.WriteLine(); Console.WriteLine("a=" + " " + a); Console.WriteLine("b=" + " " + b); Console.ReadLine(); } } }
Now run the program; the output will be as:
From
the preceding program its clear that we have swapped the values of two
variables without creating a new storage location and also the original
values of a and b remain as they were, in other words not changed.
Summary
I hope it is useful for all beginners and other readers. If you have any suggestion regarding this article then please contact me.
I hope it is useful for all beginners and other readers. If you have any suggestion regarding this article then please contact me.
Post a Comment