728x90
반응형
public static void main(String[] args) {
int a = 3;
int b = 5;
System.out.println(String.format("a: %d, b: %d", a, b)); // a: 3, b: 5
}
만약 이렇게 a가 3이고 b가 5인 변수에서 a와 b의 값을 스왑하기 위해서 어떻게 해야 할까요?
temp 변수 사용하기
public static void main(String[] args) {
int a = 3;
int b = 5;
int temp = a;
a = b;
b = temp;
System.out.println(String.format("a: %d, b: %d", a, b)); // a: 5, b: 3
}
보통은 이렇게 temp 변수를 두고
1. temp에 a를 넣는다.
2. a에 b를 넣는다.
3. b에 temp를 넣는다.
이런 식으로 a와 b의 값을 바꿀 것 입니다.
^ 연산자 사용하기
public static void main(String[] args) {
int a = 3;
int b = 5;
a = a ^ b; // 011 ^ 101 = 110
b = a ^ b; // 110 ^ 101 = 011
a = a ^ b; // 110 ^ 011 = 101
System.out.println(String.format("a: %d, b: %d", a, b)); // a: 5, b: 3
}
^(xor) 비트 연산자를 사용하게 되면 temp 변수 없이도 a와 b의 값을 변경할 수 있습니다.
728x90
반응형