programing

boole 값을 초기 값과 반대로 변경

telebox 2023. 10. 4. 21:14
반응형

boole 값을 초기 값과 반대로 변경

이상하게 들릴지도 모르지만 나는 매번 글을 쓰기 귀찮아요.

if (threadAlive)
{
            threadAlive = false;
}
        else
{
            threadAlive = true;
}

int++나 int-같은 것이 bool 값을 그 값의 반대로 바꾸는 것이 있지 않습니까?

그냥 이렇게 하면 됩니다.

threadAlive = !threadAlive;

네, 있습니다!

threadAlive ^= true;

(이는 C#농담으로, 가장 일반적인 경우 C/C++/Javascript에서 작동하지 않는 경우가 있습니다(일부 조건에 따라 C/C++/Javascript에서 작동할 수 있음), 하지만 사실입니다!^x or 연산자)

이렇게 하면 됩니다.

threadAlive = !threadAlive;

올바른 용어는 Toggle입니다.

논리적 부정 연산자!는 자신의 피연산자를 부정하는 단항 연산자입니다.에 대해 정의되어 있습니다.bool반품.true그것의 피연산자가 다음과 같은 경우에만false그리고.false그것의 피연산자가 다음과 같은 경우에만true:

threadAlive = !threadAlive;

사용.!연산자:

bool b = true;

b = !b;   // b is now false

기본 유형에 대해 연산자를 오버로드할 수 없습니다.

다른 모든 사람들이 이미 언급했듯이, 이것이 여러분의 최선의 선택입니다.

threadAlive = !threadAlive;

하지만 당신은 내가 절대 추천하고 싶지 않은 것이지만 당신만의 것을 만들 수 있습니다.bool타이핑하여 오버로드합니다.++또는 당신의 가치를 뒤집고 싶은 어떤 연산자라도.

다음 코드는 절대 사용해서는 안 되는 코드입니다.

public class MyBool
{
    bool Value;

    public MyBool(bool value)
    {
        this.Value = value;
    }

    public static MyBool operator ++(MyBool myBoolean)
    {
        myBoolean.Value = !myBoolean.Value;
        return myBoolean;
    }
}

자신만의 확장 방법을 만들 수도 있지만 이 방법도 더 좋은 방법은 아닙니다.

매우 간단합니다.

threadAlive = ! threadAlive;

언급URL : https://stackoverflow.com/questions/18018289/changing-bool-values-to-opposite-of-the-initial-value

반응형