Java - 두 개의 변수 값 변경하기(temp 변수, 배타적 논리합)

반응형

두 개의 변수에 값을 설정하고 두 개의 변수 값을 변경할 수 있는 방법이 2가지 있습니다.

첫째는 temp 변수를 이용하여 변경하는 방법

둘째는 배타적논리합을 이용해서 변경하는 방법입니다.

 

1. 정수형 변수 temp를 선언하여 대입하기

  • 메모리를 사용하지만, 속도가 빠르다.
int num1 = 10;
int num2 = 8;
int temp;

temp = num1;
num1 = num2;
num2 = temp;

 

2. xor(배타적 논리합)

  • 복호화를 두번 하면 다시 처음 값으로 간다.
int num1 = 10;
int num2 = 8;

num1 ^= num2; //num1 = num1 ^ num2
num2 ^= num1; //num2 = num2 ^ num1
num1 ^= num2; //num1 = num1 ^ num2
  1
 ^
 
 ^
   1
 ^
   1

 

두 가지 방법 예시

public class Swap {
    public static void main(String[] args) {
        
        int num1 = 10;
        int num2 = 8;
        
        System.out.println("First swap");
        
        int temp;
        temp = num1;
        num1 = num2;
        num2 = temp;
        
        System.out.println("num1 : " + num1);
        System.out.println("num2 : " + num2);
        
        System.out.println("Second swap");
        
        num1 ^= num2; //num1 = num1 ^ num2
        num2 ^= num1; //num2 = num2 ^ num1
        num1 ^= num2; //num1 = num1 ^ num2
        
        System.out.println("num1 : " + num1);
        System.out.println("num2 : " + num2);
        
        
    }
}
실행화면

 

 

728x90
반응형