호쌤
호쌤 Just For Fun

[algorithm] 변수의 토글 처리 기법

크리에이티브 커먼즈 라이선스 ITPAPER(호쌤,쭈쌤)에 의해 작성된 ≪[algorithm] 변수의 토글 처리 기법≫은(는) 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.
이 라이선스의 범위 이외의 이용허락을 얻기 위해서는 leekh4232@gmail.com으로 문의하십시오.

[algorithm] 변수의 토글 처리 기법

하나의 변수가 2개의 값만을 가질 경우 사용하는 팁들입니다.

1. bool 타입

제일 쉬운 경우.. 별로 설명이 필요없는 듯.

1
2
boolean toggle = true;
toggle = !toggle;

2. 1과 -1의 토글

마찬가지로 아주 쉽다.

2와 -2, 3과 -3의 토글의 경우에도 사용할 수 있겠지만, 그런 토글을 사용할 일은 아직까지 한번도 없었다.

1
2
int toggle = 1;
toggle = -toggle;

3. 0과 1의 토글

그냥 bool로 해도 되겠지만, 0과 2의 토글, 0과 3의 토글 등의 경우에도 사용이 가능하고, 이렇게 0과 어떤 숫자와의 토글을 써야하는 때가 의외로 자주 있다.

보통의 경우 이렇게 많이 쓴다.

1
2
3
4
5
6
7
int toggle = 1;

if (toggle == 1) {
    toggle = 0;
} else {
    toggle = 1;
}

조금 더 생각을 한다면, 3항 연산자를 사용해서 다음과 같은 처리가 가능해 진다.

개인적으로 두가지 조건을 갖는 변수의 경우에 가장 많이 활용하는 경우.

1
2
int toggle = 1;
toggle = (toggle == 1) ? 0 : 1;

논리연산을 하지 않으려면 다음과 같이 할 수 있다.

실은 이것이 내가 가장 잘 사용하는 방법이다.

주로 메뉴를 만들때 키 포커싱을 처리하는 방법이다.

1
2
int toggle = 1;
toggle = (toggle + 1) % 2;

혹은 이렇게도 사용 가능하다.

1
2
int toggle = 1;
toggle = (toggle + 1) & 0x01;

여러 모로 생각해 본 결과 가장 사용하기 편리하고 직관적인 방법인 이거다.

정말로 단순하면서도 최고의 팁이다.

단 한번의 연산으로 토글이 되는 방법!!

1
2
int toggle = 1;
toggle = 1 - toggle;

하지만 위의 방법보다 더 고차원 적인 XOR 을 사용해서 토글 처리가 가능한 방법이 있다.

1
2
int toggle = 1;
toggle ^= 1;
Rating:

크리에이티브 커먼즈 라이선스 ITPAPER(호쌤,쭈쌤)에 의해 작성된 ≪[algorithm] 변수의 토글 처리 기법≫은(는) 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 4.0 국제 라이선스에 따라 이용할 수 있습니다.
이 라이선스의 범위 이외의 이용허락을 얻기 위해서는 leekh4232@gmail.com으로 문의하십시오.

comments powered by Disqus