Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

โปรแกรม Java สลับค่าตัวแปร 2 ตัว (Swap Two Numbers)

ในบทความนี้ เราจะเรียนรู้วิธีสลับค่าของตัวแปร 2 ตัวในภาษา Java โดยใช้ตัวแปรชั่วคราว (Temporary Variable)

ตัวอย่างการทำงาน

ก่อนสลับ:

value_1: 45, value_2: 70

หลังสลับ:

value_1: 70, value_2: 45

อัลกอริทึม (ใช้ตัวแปรชั่วคราว)

  1. เริ่มต้นโปรแกรม
  2. ประกาศตัวแปร 3 ตัว: value_1, value_2, temp
  3. รับค่าจากผู้ใช้ หรือกำหนดค่าไว้ล่วงหน้า
  4. เก็บ value_1 ไว้ใน temp
  5. กำหนด value_2 ให้ value_1
  6. กำหนด temp ให้ value_2
  7. แสดงผลลัพธ์
  8. จบโปรแกรม

ตัวอย่างที่ 1: รับค่าจากผู้ใช้

import java.util.Scanner;

public class NumbersSwap {
    public static void main(String[] args) {
        int value_1, value_2, my_temp;

        System.out.println("The required packages have been imported");
        Scanner my_scan = new Scanner(System.in);
        System.out.println("A scanner object has been defined");

        System.out.println("Enter the first number");
        value_1 = my_scan.nextInt();
        System.out.println("Enter the second number");
        value_2 = my_scan.nextInt();

        System.out.println("----Before swap----");
        System.out.println("The first value is " + value_1 + " and the second value is " + value_2);

        my_temp = value_1;
        value_1 = value_2;
        value_2 = my_temp;

        System.out.println("----After swap----");
        System.out.println("The first value is " + value_1 + " and the second value is " + value_2);
    }
}

ตัวอย่างที่ 2: กำหนดค่าไว้ล่วงหน้า

public class NumbersSwap {
    public static void main(String[] args) {
        int value_1 = 45, value_2 = 70, my_temp;

        System.out.println("The required packages have been imported");
        System.out.println("----Before swap----");
        System.out.println("The first number is " + value_1 + " and the second number is " + value_2);

        my_temp = value_1;
        value_1 = value_2;
        value_2 = my_temp;

        System.out.println("----After swap----");
        System.out.println("The first number is " + value_1 + " and the second number is " + value_2);
    }
}

วิธีอื่นๆ ที่ไม่ต้องใช้ตัวแปรชั่วคราว

// วิธี 1: ใช้คณิตศาสตร์ (อาจล้นถ้าตัวเลขใหญ่)
a = a + b;
b = a - b;
a = a - b;

// วิธี 2: ใช้ XOR (สำหรับ integer เท่านั้น)
a = a ^ b;
b = a ^ b;
a = a ^ b;

// วิธี 3: Java 8+ ใช้ List (สำหรับ object)
List list = Arrays.asList(a, b);
Collections.swap(list, 0, 1);

วิธีใช้ตัวแปรชั่วคราว (temp) เข้าใจง่ายที่สุดและปลอดภัยที่สุด แนะนำให้ใช้