- =
初回のサンプルで既に使っていたりするので、今更感がありますが、代入と呼ばれてい
る演算子が、このイコールです。
る演算子が、このイコールです。
例
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は両方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は特定のビットを反転させるときに良く使
われます。
とき(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~は、また後で説明しますが、条件分岐と呼ばれる処理です。
ログラムを組んでみる人は、しっかりと覚えてください。
結構重要です。
と、例中の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型の変数に格納できます。
というより、bool型の変数にしか格納できません。
例
bool b; b = x == y; label1.Text = b.ToString();
この例では、bにxとyが同じかどうかの結果を代入し、その結果を表示しています。
このようなbool型の変数に比較結果を代入する、というケースはそれほど多くは無いと
思います(そういう記述が好きだという人も居るかもしれませんが)
後ほど説明する条件分岐に、この関係演算子は良く用いられます。
このようなbool型の変数に比較結果を代入する、というケースはそれほど多くは無いと
思います(そういう記述が好きだという人も居るかもしれませんが)
後ほど説明する条件分岐に、この関係演算子は良く用いられます。
- 論理条件演算子
条件が複数ある場合、論理条件演算子を使用します。
たとえば、「作品に登場する人物は18歳以上です」等という場合は単純に関係演算子
を使えば良いのですが(作品の舞台が高等学校だったとしても)、「求人 18歳から
30歳まで」なんて場合は論理条件演算子を使う必要があります。
たとえば、「作品に登場する人物は18歳以上です」等という場合は単純に関係演算子
を使えば良いのですが(作品の舞台が高等学校だったとしても)、「求人 18歳から
30歳まで」なんて場合は論理条件演算子を使う必要があります。
| 記号 | 意味 |
| && | and(且つ) |
| || | or(または) |
| ! | not(否定) |
orは、全角になっていますが、プログラミングするときは半角です
たとえば、求人の例をとって、18~30迄という条件ならば、以下のようになります。
bool b; b = ( age >= 18 ) && ( age <= 30 );
bにはageが18以上30以下ならtrue、それ以外ならfalseが返されます。