例C# で使用できるすべての算術演算子について学ぶには、以下の例を見てください: using System;
namespace OperatorsAppl
{
class Program
{
static void Main(string[] args)
{
int a = 21;
int b = 10;
int c;
c = a + b;
Console.WriteLine("Line 1 - c 的值是 {0}", c);
c = a - b;
Console.WriteLine("Line 2 - c 的值是 {0}", c);
c = a * b;
Console.WriteLine("Line 3 - c 的值是 {0}", c);
c = a / b;
Console.WriteLine("Line 4 - c 的值是 {0}", c);
c = a % b;
Console.WriteLine("Line 5 - c 的值是 {0}", c);
// ++a 先进行自增运算再赋值
c = ++a;
Console.WriteLine("Line 6 - c 的值是 {0}", c);
// 此时 a 的值为 22
// --a 先进行自减运算再赋值
c = --a;
Console.WriteLine("Line 7 - c 的值是 {0}", c);
Console.ReadLine();
}
}
} 上記のコードがコンパイルされて実行されると、次の結果が生成されます: Line 1 - c 的值是 31
Line 2 - c 的值是 11
Line 3 - c 的值是 210
Line 4 - c 的值是 2
Line 5 - c 的值是 1
Line 6 - c 的值是 22
Line 7 - c 的值是 21 c = a++: First a を c に代入し、a に対してインクリメント操作を実行します。 c = ++a: まず a に対してインクリメント演算を実行し、次に a を c に代入します。 c = a--: まず a を c に代入し、次に a に対して自己減分演算を実行します。 c = --a: まず a に対してデクリメント演算を実行し、次に a を c に代入します。
インスタンスusing System;
namespace OperatorsAppl
{
class Program
{
static void Main(string[] args)
{
int a = 1;
int b;
// a++ 先赋值再进行自增运算
b = a++;
Console.WriteLine("a = {0}", a);
Console.WriteLine("b = {0}", b);
Console.ReadLine();
// ++a 先进行自增运算再赋值
a = 1; // 重新初始化 a
b = ++a;
Console.WriteLine("a = {0}", a);
Console.WriteLine("b = {0}", b);
Console.ReadLine();
// a-- 先赋值再进行自减运算
a = 1; // 重新初始化 a
b= a--;
Console.WriteLine("a = {0}", a);
Console.WriteLine("b = {0}", b);
Console.ReadLine();
// --a 先进行自减运算再赋值
a = 1; // 重新初始化 a
b= --a;
Console.WriteLine("a = {0}", a);
Console.WriteLine("b = {0}", b);
Console.ReadLine();
}
}
} インスタンスの実行 »オンラインインスタンスを表示するには、[インスタンスの実行]ボタンをクリックしてください
执行以上程序,输出结果为:
rree以下の表は、C# のすべてのサポートを示していますシンボルの関係演算。変数 A の値が 10 で、変数 B の値が 20 であるとします。 Operator | Description | Example |
---|
== | 2 つのオペランドは等価であり、等しい場合、条件は true になります。 | (A == B) は真実ではありません。 | != | は、2 つのオペランドの値が等しいかどうかをチェックし、そうでない場合は条件が true です。 | (A != B) は true です。 | > | 左のオペランドの値が右のオペランドの値より大きいかどうかを確認し、大きい場合は条件が true です。 | (A > B) は真実ではありません。 | < | 左のオペランドの値が右のオペランドの値より小さいかどうかを確認し、そうであれば条件は true です。 | (A < B) は true です。 | >= | 左のオペランドの値が右のオペランドの値以上であるかどうかを確認し、そうであれば条件が true です。 | (A >= B) は真実ではありません。 | <= | 左のオペランドの値が右のオペランドの値以下であるかどうかを確認し、そうであれば条件は true です。 | (A <= B) は true です。 |
例C# で使用できるすべての関係演算子について学ぶには、以下の例を見てください: a = 2
b = 1
a = 2
b = 2
a = 0
b = 1
a = 0
b = 0 上記のコードがコンパイルされて実行されると、次の結果が生成されます: using System;
class Program
{
static void Main(string[] args)
{
int a = 21;
int b = 10;
if (a == b)
{
Console.WriteLine("Line 1 - a 等于 b");
}
else
{
Console.WriteLine("Line 1 - a 不等于 b");
}
if (a < b)
{
Console.WriteLine("Line 2 - a 小于 b");
}
else
{
Console.WriteLine("Line 2 - a 不小于 b");
}
if (a > b)
{
Console.WriteLine("Line 3 - a 大于 b");
}
else
{
Console.WriteLine("Line 3 - a 不大于 b");
}
/* 改变 a 和 b 的值 */
a = 5;
b = 20;
if (a <= b)
{
Console.WriteLine("Line 4 - a 小于或等于 b");
}
if (b >= a)
{
Console.WriteLine("Line 5 - b 大于或等于 a");
}
}
} 以下の表は、 C# でサポートされているすべての論理演算子。変数Aがブール値真であり、変数bがブール値のfalseであると仮定します。次に、次のとおりです。オペレーター。両方のオペランドがゼロ以外の場合、条件は true になります。 (A && B) は誤りです。 | || | は論理OR演算子と呼ばれます。 2 つのオペランドのいずれかが 0 以外の場合、条件は true になります。 | (A || B) は true です。
---|
| ! | は論理否定演算子と呼ばれます。オペランドの論理状態を反転するために使用されます。論理 NOT 演算子は、条件が true の場合、条件を false にします。 | !(A && B) は true です。 | 例 | C# で使用できるすべての論理演算子を理解するには、以下の例を参照してください。 | Line 1 - a 不等于 b
Line 2 - a 不小于 b
Line 3 - a 大于 b
Line 4 - a 小于或等于 b
Line 5 - b 大于或等于 a 上記のコードがコンパイルされて実行されると、次の結果が生成されます: using System;
namespace OperatorsAppl
{
class Program
{
static void Main(string[] args)
{
bool a = true;
bool b = true;
if (a && b)
{
Console.WriteLine("Line 1 - 条件为真");
}
if (a || b)
{
Console.WriteLine("Line 2 - 条件为真");
}
/* 改变 a 和 b 的值 */
a = false;
b = true;
if (a && b)
{
Console.WriteLine("Line 3 - 条件为真");
}
else
{
Console.WriteLine("Line 3 - 条件不为真");
}
if (!(a && b))
{
Console.WriteLine("Line 4 - 条件为真");
}
Console.ReadLine();
}
}
} ビットごとの演算子 | ビットごと演算子はビットに作用し、ビットごとに演算を実行します。 &、| および ^ の真の値は次のとおりです。 0 | 0 | 0101111 | 1 | 1 | 0 | | 10 | 0 | 1 | 1 | | A = 60、B = 13 をバイナリ形式で表すと次のようになるとします: A = 0011 1100 B = 0000 1101 ------------- ---- A&B = 0000 1100 A|B = 0011 1101 A^B = 0011 0001 ~A = 1100 0011 次の表は、C# でサポートされているビット演算子の一覧です。変数 A の値が 60、変数 B の値が 13 であると仮定すると、次のようになります。同時に、バイナリ AND 演算子は 1 ビットを結果にコピーします。 (A & B) は 12 を返します。これは 0000 1100 です | | | どちらかのオペランドに存在する場合、バイナリ OR 演算子は 1 ビットを結果にコピーします。 | (A | B) は、0011 1101 である 61 を取得します
---|
| ^ | オペランドの 1 つに存在し、両方に存在しない場合、バイナリ XOR 演算子は 1 ビットを結果にコピーします。 | (A ^ B) は 49 を返します。これは 0011 0001 です | ~ | 2 の補数演算子は、ビットを「反転」する効果がある単項演算子です。 | (~A ) は -61 を返します。これは 1100 0011、2 の補数、符号付き 2 進数です。 | << | 二項左シフト演算子。左オペランドの値は、右オペランドで指定されたビット数だけ左にシフトされます。 | A << 2 は 240 を取得します。これは 1111 0000 です | >> | 2 項右シフト演算子。左オペランドの値は、右オペランドで指定されたビット数だけ右にシフトされます。 | A >> 2 は 15、つまり 0000 1111 になります | 例C# で使用できるすべてのビット演算子について学ぶには、以下の例をご覧ください: Line 1 - 条件为真
Line 2 - 条件为真
Line 3 - 条件不为真
Line 4 - 条件为真 上記のコードがコンパイルされて実行されると、次の結果が生成されます: using System;
namespace OperatorsAppl
{
class Program
{
static void Main(string[] args)
{
int a = 60; /* 60 = 0011 1100 */
int b = 13; /* 13 = 0000 1101 */
int c = 0;
c = a & b; /* 12 = 0000 1100 */
Console.WriteLine("Line 1 - c 的值是 {0}", c );
c = a | b; /* 61 = 0011 1101 */
Console.WriteLine("Line 2 - c 的值是 {0}", c);
c = a ^ b; /* 49 = 0011 0001 */
Console.WriteLine("Line 3 - c 的值是 {0}", c);
c = ~a; /*-61 = 1100 0011 */
Console.WriteLine("Line 4 - c 的值是 {0}", c);
c = a << 2; /* 240 = 1111 0000 */
Console.WriteLine("Line 5 - c 的值是 {0}", c);
c = a >> 2; /* 15 = 0000 1111 */
Console.WriteLine("Line 6 - c 的值是 {0}", c);
Console.ReadLine();
}
}
} 次の表に、C# でサポートされている代入演算子のリストを示します。 A + B は A + B の値を C に代入します += | 加算および代入演算子は、右オペランドを左オペランドに加算した結果を左オペランドに代入します | C += A と同等C = C + A | -= | 減算および代入演算子では、左オペランドから右オペランドを減算した結果が左オペランド | C -= Aに代入されます。これはC = C -と同等です。 A | *= | 乗算および代入演算子、右オペランドと左オペランドを乗算した結果は左オペランドに代入されます | C *= A は C = C * A | / と同等です= | 除算と代入の演算子は、左のオペランドを右のオペランドで除算した結果を左のオペランド | C /= A に代入します。これは C = C / A | %= | modulo と同等です。代入演算子、2 つのオペランドの法を求め、それを左オペランドに代入します | C %= A これは C = C % A | <<= | 左シフトおよび代入演算子 | と同等ですC <<= 2 は C = C <&= | ビット単位の AND と同等であり、代入演算子C &= 2 は C = C & 2 | | ^= | ビット単位の XOR と同等です。代入演算子C ^= 2はC = C ^ 2 | | |= | のビットごとのORと代入演算子C |= 2はC = 2 | | と同等です。例C# で使用できるすべての代入演算子について学ぶには、以下の例をご覧ください: Line 1 - c 的值是 12
Line 2 - c 的值是 61
Line 3 - c 的值是 49
Line 4 - c 的值是 -61
Line 5 - c 的值是 240
Line 6 - c 的值是 15 上記のコードがコンパイルされて実行されると、次の結果が生成されます: using System;
namespace OperatorsAppl
{
class Program
{
static void Main(string[] args)
{
int a = 21;
int c;
c = a;
Console.WriteLine("Line 1 - = c 的值 = {0}", c);
c += a;
Console.WriteLine("Line 2 - += c 的值 = {0}", c);
c -= a;
Console.WriteLine("Line 3 - -= c 的值 = {0}", c);
c *= a;
Console.WriteLine("Line 4 - *= c 的值 = {0}", c);
c /= a;
Console.WriteLine("Line 5 - /= c 的值 = {0}", c);
c = 200;
c %= a;
Console.WriteLine("Line 6 - %= c 的值 = {0}", c);
c <<= 2;
Console.WriteLine("Line 7 - <<= c 的值 = {0}", c);
c >>= 2;
Console.WriteLine("Line 8 - >>= c 的值 = {0}", c);
c &= 2;
Console.WriteLine("Line 9 - &= c 的值 = {0}", c);
c ^= 2;
Console.WriteLine("Line 10 - ^= c 的值 = {0}", c);
c |= 2;
Console.WriteLine("Line 11 - |= c 的值 = {0}", c);
Console.ReadLine();
}
}
} リストC# でサポートされているその他の重要な演算子には、sizeof、typeof、および :? などがあります。 演算子の記述例
sizeof() はデータ型のサイズを返します。 sizeof(int) は 4 を返します。
typeof() はクラスの型を返します。 typeof(StreamReader);
& は変数のアドレスを返します。 &a; は変数の実際のアドレスを取得します。
*変数へのポインタ。 *a; は変数を指します。
?: 条件式 条件が true の場合 X: それ以外の場合 Y
オブジェクトが特定のタイプであるかどうかを判断します。 If( Ford is Car) // Ford が Car クラスのオブジェクトかどうかを確認します。
キャストした場合、変換が失敗した場合でも例外はスローされません。 Object obj = new StringReader("Hello"); StringReader r = obj as StringReader; 例Line 1 - = c 的值 = 21
Line 2 - += c 的值 = 42
Line 3 - -= c 的值 = 21
Line 4 - *= c 的值 = 441
Line 5 - /= c 的值 = 21
Line 6 - %= c 的值 = 11
Line 7 - <<= c 的值 = 44
Line 8 - >>= c 的值 = 11
Line 9 - &= c 的值 = 2
Line 10 - ^= c 的值 = 0
Line 11 - |= c 的值 = 2 上記のコードをコンパイルして実行すると、次の結果が生成されます:using System;
namespace OperatorsAppl
{
class Program
{
static void Main(string[] args)
{
/* sizeof 运算符的实例 */
Console.WriteLine("int 的大小是 {0}", sizeof(int));
Console.WriteLine("short 的大小是 {0}", sizeof(short));
Console.WriteLine("double 的大小是 {0}", sizeof(double));
/* 三元运算符符的实例 */
int a, b;
a = 10;
b = (a == 1) ? 20 : 30;
Console.WriteLine("b 的值是 {0}", b);
b = (a == 10) ? 20 : 30;
Console.WriteLine("b 的值是 {0}", b);
Console.ReadLine();
}
}
} C# における演算子の優先順位 演算子の優先順位によって、式内の項の組み合わせが決まります。これは式の評価方法に影響します。一部の演算子は他の演算子より優先順位が高くなります。たとえば、乗算演算子と除算演算子は加算演算子や減算演算子よりも優先順位が高くなります。 たとえば、x = 7 + 3 * 2、ここでは、演算子 * の優先順位が + よりも高いため、x には値 20 ではなく値 13 が割り当てられ、乗算 3*2 が最初に計算され、次に 7 が加算されます。 。 次の表では、各演算子を演算子の優先順位の高いものから低いものの順にリストしています。優先順位の高い演算子は表の上に表示され、優先順位の低い演算子は表の下に表示されます。式では、優先順位の高い演算子が最初に評価されます。 カテゴリ | 演算子 | 結合性 |
---|
サフィックス | () [] ->++ - - | 左から右へ | | + - ! - - (type)* & sizeof | 右から左へ | 乗算と除算 | * / % | 左から右へ | 加減算 | + - | 左から右へ | | <<>> | 関係 | <<=>= | 等しい | = = != | 左から右へ | bit AND AND | & | 左から右へ | bit XOR XOR | ^ | 左から右へ | ビット または | | | 左から右へ | 論理AND | && | 左から右へ | 論理OR OR | || | 左から右へ | 条件 | ?: | 右から左へ | 代入 | = += -= *= /= %=>>= <<= &= ^= |= | 右から左へ | カンマ左から右に | 、 | | | 例int 的大小是 4
short 的大小是 2
double 的大小是 8
b 的值是 30
b 的值是 20 | 上記のコードをコンパイルして実行すると、次の結果が生成されます: using System;
namespace OperatorsAppl
{
class Program
{
static void Main(string[] args)
{
int a = 20;
int b = 10;
int c = 15;
int d = 5;
int e;
e = (a + b) * c / d; // ( 30 * 15 ) / 5
Console.WriteLine("(a + b) * c / d 的值是 {0}", e);
e = ((a + b) * c) / d; // (30 * 15 ) / 5
Console.WriteLine("((a + b) * c) / d 的值是 {0}", e);
e = (a + b) * (c / d); // (30) * (15/5)
Console.WriteLine("(a + b) * (c / d) 的值是 {0}", e);
e = a + (b * c) / d; // 20 + (150/5)
Console.WriteLine("a + (b * c) / d 的值是 {0}", e);
Console.ReadLine();
}
}
}
|
|