トリッキーコードネット トップへ戻る   C/C++, Java, Perl, PHP, JavaScript, アルゴリズム, ショートコーディング, IOCCCコードの解説, 等々

サイト情報

トリッキーなコード

7行プログラミング

物凄いコード集

アルゴリズム

データ構造

C/C++な話題

コードサンプル

ツール/環境構築

開発ノウハウ 等

ネタ/ジョーク集

おススメ書籍/サイト

サイトTOP >> トリッキーなコード >> 二状態・三状態のトグル、ループカウンタについて

二状態・三状態を交互に切り替える方法 / ループでカウントさせる方法

さて、a という変数の中に、0,1 のいずれかの値が入るとします。
その際、変数aの中身を交互に切り替える方法は、以下の通り^^;)

a = 1 - a;
または
a ^= 1;
切り替え前の値を a 切り替え後の値を a' とした場合の動作表です。
aa'
01
10
見事にトグルしてますね~~w さて、お次は、 a という変数の中に、0,1,2 のいずれかの値が入るものとします。 その際、 変数aの中身が 0 または 2 の場合、2 または 0 に切り替えたく、 中身が 1ならば、そのまま値を維持する という切り替えをしたいとします。 動作表にするとこんな感じ↓
aa'
02
11
21
その場合の方法は、以下の通り^^;)
a = 2 - a;
また、0,1,2 で三状態を表すのではなく、 -1,0,1 で三状態を表す場合は、
aa'
-11
00
1-1
以下の方法が使えます^^;)
a = -a;
キタ━━━━━━(゚∀゚)━━━━━━!!!!! 可読性も悪くないですし、これらは 早速実務で使える技達ですね♪ 追記: 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)));
}
追記2: 1,2 のトグルで状態を切り替える場合、
aa'
12
21
a = 3 - a;
         このエントリーをはてなブックマークに追加   


作業効率化・ライフハックのオススメ記事




コンピュータ・テクノロジーのオススメ記事





恋愛・人間関係のオススメ記事




※ 当サイトは、トップページからリンクで辿る事の出来るページに限り、リンクフリーです。
※ 当サイトの閲覧/利用によって生じた如何なる損害も、当サイト管理人は責任を負いません。
※ 当サイトの内容を転載される場合は、当サイトへのリンクをお願い致します。