初回のサンプルで既に使っていたりするので、今更感がありますが、代入と呼ばれてい
る演算子が、このイコールです。
例
int i;
i = 100;
変数iに100を代入しています。
ま、イコールに関してはそれほど説明をすることも無いでしょう。
所謂四則演算というやつです。
- (たす)、-(ひく)、*(かける)、/(わる)です。
……って、小学校じゃないんだから、加算、減算、乗算、除算ですか。
ま、分かりやすいほうで。
除算は商だけを取得できます。剰余(あまり)を得るには、%を使います。
例
int i;
i = 10 + 10; //iは20
i = i - 10; //iは10
i = i * 10; //iは100
i = 10 / 3; //iは3
i = 10 % 3; //iは1(10/3のあまりをiに代入)
演算の順番は通常の四則演算と同じです。
順番を変えたい場合、括弧を使用するのも同じです。
例
int i = ( 1 + 3 ) * 3;
iには10ではなく、12が代入されます。
当たり前ですが。
&(and)、^(xor)、|(or)です。
論理演算というやつです。
論理演算というのは、0と1の組み合わせで行う演算です。
andは両方1ならば1、orはどちらか片方でも1ならば1、xorは、片方1だけならば1を返
します。それ以外は0を返します。
以下が論理演算の組み合わせになります。
and
0 & 0 : 0
0 & 1 : 0
1 & 0 : 0
1 & 1 : 0
or
0 | 0 : 0
0 | 1 : 1
1 | 0 : 1
1 | 1 : 1
xor
0 ^ 0 : 0
0 ^ 1 : 1
1 ^ 0 : 1
1 ^ 1 : 0
C#では……というか、プログラム言語では、これらを各ビットごとに行います。
例
int i = 0xffff;
i = i & 0xff00;
例では、iにはff00が代入されます。
これは、二進数に直して計算すると分かりやすいです。
1111 1111 1111 1111
&
1111 1111 0000 0000
=
1111 1111 0000 0000
andは特定のビットが立っているか(1か)を確認するとき、または特定のビットを落とす
とき(0)orは特定のビットを立てるとき、xorは特定のビットを反転させるときに良く使
われます。
例
int i = 0xf0;
if( i & 0x80 != 0 ) //iの15bit目が1かを調べる
{
i = i & 0x7f; //iの15bit目を0にする(=0x70)
}
i = i | 0x80; //iの15bit目を1にする(=0xf0)
i = i ^ 0xff; //iの0-15bit目を反転させる(=0x0f)
ま、C/C++をやったことがあるならば、改めて説明するまでもありませんが、初めてプ
ログラムを組んでみる人は、しっかりと覚えてください。
結構重要です。
と、例中のif~は、また後で説明しますが、条件分岐と呼ばれる処理です。
変数に、その変数との演算結果を代入する場合は、i = i + 1のように、変数自身に代
入するような記述をしてきました。
分かりやすくて良いのですが、面倒だという人の為に(?)ショートカットが用意され
ています。
ショートカットを使う際は、演算子の後ろにイコールをつけます。例えば、+=のように
です。
例
int i = 0;
i += 10;
i -= 1;
i *= 10;
i /= 5;
i &= 0xf;
i |= 0xf0;
i ^= 0xff;
iはいくつになっているでしょうか。
計算してみてくださいな。
さらにものぐさな人の為に、++と--という、1だけインクリメント、デクリメントする
というショートカットも用意されています。
- と--は、変数の前又は後ろにつけることが出来ます。それぞれ前置演算子、後置演算
子と呼びます。
前につけると、インクリメントを行ってから変数を解釈します。
後ろにつけると、変数を解釈してからインクリメントします。
例 int x = 0, y = 0;
x = y++; //まず、yが解釈され、xに代入。その後、yがインクリメント。
//つまり、x = 0,y = 1;
y = 0;
x = ++y; //まず、yがインクリメントされる。その後、xに代入。
//つまり、x = 1,y = 1;
例を見ても分かるとおり、変数をインクリメントするだけなら、前につけても後ろにつ
けても特に変わりはありません。
関係演算子、というのは、式を評価して、結果をブール値で取得する演算子です。
と、まぁ、難しく書くと(?)こうなりますが、要は式を比較して、その結果が正しい
か、正しくないかを得る演算子です。
記号 |
意味 |
== |
等しい |
!= |
等しくない |
大きい |
< |
小さい |
>= |
同じか、大きい |
<= |
同じか、小さい |
たとえば、aとbが同じか同かを調べたい場合は、a == bとなります。
代入に使われる=と、関係演算子の==は全く別物なので注意してください。
結果はbool型の変数に格納できます。
というより、bool型の変数にしか格納できません。
例
bool b;
b = x == y;
label1.Text = b.ToString();
この例では、bにxとyが同じかどうかの結果を代入し、その結果を表示しています。
このようなbool型の変数に比較結果を代入する、というケースはそれほど多くは無いと
思います(そういう記述が好きだという人も居るかもしれませんが)
後ほど説明する条件分岐に、この関係演算子は良く用いられます。
条件が複数ある場合、論理条件演算子を使用します。
たとえば、「作品に登場する人物は18歳以上です」等という場合は単純に関係演算子
を使えば良いのですが(作品の舞台が高等学校だったとしても)、「求人 18歳から
30歳まで」なんて場合は論理条件演算子を使う必要があります。
記号 |
意味 |
&& |
and(且つ) |
|| |
or(または) |
! |
not(否定) |
orは、全角になっていますが、プログラミングするときは半角です
たとえば、求人の例をとって、18~30迄という条件ならば、以下のようになります。
bool b;
b = ( age >= 18 ) && ( age <= 30 );
bにはageが18以上30以下ならtrue、それ以外ならfalseが返されます。
最終更新:2007年09月22日 13:11