C#에서 두 숫자 교환(Swap)하기
프로그래밍에서 두 변수의 값을 서로 맞바꾸는 작업을 스왑(Swap)이라고 합니다. C#에서는 별도의 임시 변수 없이도 덧셈과 뺄셈 연산만으로 두 숫자를 간단하게 교환할 수 있습니다.
기본 로직
먼저 교환할 두 개의 변수를 선언하고 초기화합니다.
val1 = 100; val2 = 200;
이제 다음 세 단계의 연산을 통해 두 값을 교환합니다.
val1 = val1 + val2; val2 = val1 - val2; val1 = val1 - val2;
동작 원리
이 방식이 어떻게 작동하는지 초기값(val1 = 100, val2 = 200)을 기준으로 단계별로 살펴보겠습니다.
- val1 = val1 + val2 → val1에 합계인 300(100+200)이 저장됩니다.
- val2 = val1 - val2 → 300-200 = 100, 즉 원래 val1의 값이 val2에 저장됩니다.
- val1 = val1 - val2 → 300-100 = 200, 즉 원래 val2의 값이 val1에 저장됩니다.
결과적으로 두 변수의 값이 성공적으로 교환됩니다.
전체 예제 코드
using System;
namespace Demo {
class Program {
static void Main(string[] args) {
int val1, val2;
val1 = 100;
val2 = 200;
Console.WriteLine("Values before swap...");
Console.WriteLine(val1.ToString());
Console.WriteLine(val2.ToString());
val1 = val1 + val2;
val2 = val1 - val2;
val1 = val1 - val2;
Console.WriteLine("Values after swap...");
Console.WriteLine(val1.ToString());
Console.WriteLine(val2.ToString());
Console.ReadLine();
}
}
}실행 결과
Values before swap... 100 200 Values after swap... 200 100