C#에서 부울 변수 전환
이 기사에서는 C#에서 부울 변수를 토글하는 방법을 설명합니다.
C#
에서 부울 변수 전환
부울 변수를 토글한다는 것은 true
와 false
사이에서 값을 변경하는 것을 의미합니다. 이를 수행하는 한 가지 간단한 방법은 다음 코드를 사용하는 것입니다. 이 코드는 함수로도 만들 수 있습니다.
bool flag = false;
if (flag == false) {
flag = true;
} else {
flag = false;
}
함수를 만드는 경우 다음과 같이 할 수 있습니다.
using System;
class Program
{
static void toggle(ref bool flag)
{
if (flag == false)
{
flag = true;
}
else
{
flag = false;
}
}
static void Main(String[] args)
{
bool flag = false;
toggle(ref flag);
Console.WriteLine(flag);
}
}
ref
키워드를 사용하여 flag
매개변수가 참조로 전달되었는지 확인하여 함수 내에서 변경되었습니다.
출력은 다음과 같습니다.
True
이제 이러한 긴 코드 줄을 생략하고 훨씬 짧은 줄로 전환할 수 있는 방법을 살펴보겠습니다.
사용 !
C#
에서 부울 변수를 전환하는 연산자
간단한 구문으로 이 토글을 수행하는 한 가지 방법은 !
를 사용하는 것입니다. 값을 반대 값으로 변환하는 연산자입니다.
따라서 다음과 같이 작성할 수 있습니다.
flag = !flag;
flag
가 true
이면 False
가 됩니다. 거짓
이면 참
이 됩니다.
출력은 동일합니다.
True
전체 코드는 아래에 문서화되어 있습니다.
using System;
class Program
{
static void Main(string[] args)
{
bool flag = false;
flag = !flag;
Console.WriteLine(flag);
}
}
^
(XOR) 연산자를 사용하여 C#
에서 부울 변수를 전환하면 안 되는 이유
XOR 연산자는 bool 변수의 값이 true
인 경우에만 false
로 변환하는 경향이 있습니다. 그러나 값이 이미 false
인 반대의 경우에는 작동하지 않습니다.
아래의 예를 살펴보겠습니다.
using System;
class Program
{
static void Main(string[] args)
{
bool flag = true;
flag ^= flag;
Console.WriteLine(flag);
}
}
위를 실행하면 출력은 다음과 같습니다.
False
그러나 flag
가 false
로 설정된 경우 XOR을 적용해도 True
로 변경되지 않습니다.
using System;
class Program
{
static void Main(string[] args)
{
bool flag = false;
flag ^= flag;
Console.WriteLine(flag);
}
}
출력은 이제 다음과 같습니다.
False
왜요? 글쎄요, 1
은 true
이고 0
은 false
입니다. flag
가 true
인 XOR을 입력하면 결과는 0
또는 false
가 됩니다.
그러나 flag
가 false
인 XOR을 입력하면 결과는 여전히 0
으로 유지됩니다. XOR 테이블을 기억한다면 다음과 같이 작동합니다.
Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!
GitHub