2状態(1:ON ⇔ 0:OFF)のトグル
さて、a という変数の中に、0,1 のいずれかの値が入るとします。
その際、変数aの中身を交互に切り替える方法は、以下の通り^^;)
a = 1 - a;
または
a ^= 1;
切り替え前の値を a
切り替え後の値を a'
とした場合の動作表です。
見事にトグルしてますね~~w
2状態(1 ⇔ 2)のトグル
1,2 のトグルで状態を切り替える場合、
こんな感じです↓
a = 3 - a;
3状態のトグル
さて、お次は、
a という変数の中に、0,1,2 のいずれかの値が入るものとします。
その際、
変数aの中身が 0 または 2 の場合、2 または 0 に切り替えたく、
中身が 1ならば、そのまま値を維持する
という切り替えをしたいとします。
動作表にするとこんな感じ↓
その場合の方法は、以下の通り^^;)
a = 2 - a;
また、0,1,2 で三状態を表すのではなく、 -1,0,1 で三状態を表す場合は、
以下の方法が使えます^^;)
a = -a;
キタ━━━━━━(゚∀゚)━━━━━━!!!!!
可読性も悪くないですし、これらは 早速実務で使える技達ですね♪
0〜Xまでの繰り返し
0, 1, 2, 3, 0, 1, 2, 3, 0, 1,... と、0 ~ X(左の例では X が 3) を延々と繰り返し表示する技。
i = 0;
X = 3;
while(true) {
printf("%d ", (++i % (X + 1)));
}