Cách hoán đổi giá trị hai biến trong C#

Trong bài viết này mình sẽ hướng dẫn các bạn các cách hoán đổi hai biến trong C#. Hai biến này có thể là kiểu số hoặc kiểu chuỗi, ví dụ ta có số a = 5 và b = 8 thì sau khi hoán đổi thì a = 8 và b = 5.

1. Hoán đổi hai số sử dụng biến thứ ba trong C#

Trong chương trình sau, mình sẽ khai báo và sử dụng một biến thứ ba là temp, có cùng kiểu dữ liệu với hai số number1 và number2. Giả sử number1 = 10 và number2 = 20.

Bây giờ chúng ta sẽ bắt đầu viết thuật toán để hoán đổi, gán temp = number1 (temp = 10). Tiếp tục gán number1 = number2 (number1 = 20) và cuối cùng là number2 = temp (number2 = 10).

Khi đó chúng ta chỉ việc hiển thị hai số number1 và number2 ra màn hình là xong.

Bài viết này được đăng tại [kiso.vn]

using System;
namespace ConsoleApp5
{
    class Program
    {
        static void Main(string[] args)
        {
            //khai báo ba biến number1, number2 và temp
            int number1 = 10, number2 = 20, temp = 0;
            //hiển thị hai số trước khi hoán đổi
            Console.WriteLine($"Truoc khi hoan doi: number1= {number1}, number2 = {number2}");
            temp = number1; //temp = 10
            number1 = number2; //number1 = 20      
            number2 = temp; //number2 = 10    
            Console.WriteLine($"Sau khi hoan doi: number1= {number1}, number2 = {number2}");
            Console.ReadKey();
        }
    }
}

Kết quả:

bai1 01 png

2. Hoán đổi hai số không sử dụng biến thứ ba trong C#

Để hoán đổi hai số không sử dụng biến thứ ba thì ta có thể thực hiện bằng hai cách. Cách thứ nhất là sử dụng hai toán tử “+” và “-“, cách thứ hai là sử dụng hai toán từ “*” và “/”. Trong phần này mình sẽ thực hiện cả hai cách để các bạn có thể so sánh nhé.

Hoán đổi hai số sử dụng toán tử “+” và “-“

Giả sử ta có hai biến number1 = 10 và number2 = 20, khi đó thuật toán để hoán đổi hai số sẽ được thực hiện như sau:

  1. number1 = number1 + number2 (khi đó number1 sẽ là 10 + 20 = 30).
  2. number2 = number1 – number2 (khi đó number2 sẽ là 30 – 20 = 10).
  3. number1 = number1 – number2 (khi đó number1 sẽ là 30 – 10 – 20).

Như vậy sau khi hoán đổi thì ta thấy number1 = 20 và number2 = 10, kết quả đã được hoán đổi so với kết quả ban đầu là number1 = 10 và number2 = 20.

using System;
namespace ConsoleApp5
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("-------------- Hoan doi hai so su dung toan tu + va - --------------");
            //khai báo hai biến number1, number2
            int number1 = 10, number2 = 20;
            //hiển thị hai số trước khi hoán đổi
            Console.WriteLine($"Truoc khi hoan doi: number1= {number1}, number2 = {number2}");
            number1 = number1 + number2; // number1 = 30 (10 + 20)      
            number2 = number1 - number2; // number2 = 10 (30-20)      
            number1 = number1 - number2; // number1 = 20 (30-10)    
            Console.WriteLine($"Sau khi hoan doi: number1= {number1}, number2 = {number2}");
            Console.ReadKey();
        }
    }
}

Kết quả:

bai1 02 png

Hoán đổi hai số sử dụng toán tử “*” và “/”

Tương tự như vây, ta cũng sẽ thực hiện hoán đổi hai số bằng toán tử “*” và “/”.

using System;
namespace ConsoleApp5
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("-------------- Hoan doi hai so su dung toan tu * va / --------------");
            //khai báo hai biến number1, number2
            int number1 = 10, number2 = 20;
            //hiển thị hai số trước khi hoán đổi
            Console.WriteLine($"Truoc khi hoan doi: number1= {number1}, number2 = {number2}");
            number1 = number1 * number2; // number1 = 200 (10 * 20)      
            number2 = number1 / number2; // number2 = 10 (200 / 20)      
            number1 = number1 / number2; // number1 = 20 (200 / 10)    
            Console.WriteLine($"Sau khi hoan doi: number1= {number1}, number2 = {number2}");
            Console.ReadKey();
        }
    }
}

Kết quả:

bai1 03 png

3. Hoán đổi hai chuỗi trong C#

Trong phần này mình sẽ thực hiện chương trình để hoán đổi hai chuỗi có sẵn là name1 và name2. Việc hoán đổi hai chuỗi nó cũng khá giống với hoán đổi hai số, các bạn cùng xem đoạn code dưới đây để hiểu hơn.

using System;
namespace ConsoleApp5
{
    class Program
    {
        static void Main(string[] args)
        {
            string name1 = "Kiso.vn", name2 = "Tutorials";
            Console.WriteLine($"Truoc khi hoan doi: name1 = {name1}, name2 = {name2}");
            // Bước 1: gộp hai chuỗi thành một chuỗi và lưu nó vào chuỗi thứ nhất
            name1 = name1 + name2;
            //Bước 2: sử dụng phương thức substring để tách chuỗi dựa vào độ dài của hai chuỗi
            name2 = name1.Substring(0, name1.Length - name2.Length);
            //Bước 3:  tương tự như vậy ta cũng sủ dụng phương thức substring() để tách chuỗi thứ nhất
            name1 = name1.Substring(name2.Length);
            Console.WriteLine($"Sau khi hoan doi: name1 = {name1}, name2 = {name2}");
            Console.ReadKey();
        }
    }
}

Kết quả:

bai1 04 png

Trên đây là các cách đẻ hoán đổi hai số hoặc hai chuỗi khác nhau, tuy đây là bài tập đơn giản nhưng rất quan trong. Các bạn hãy luyện tập thật nhiều để thành thạo nó nhé, chúc các bạn thành công!!!

Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *