Csharp-operators-precedence
提供:Dev Guides
C#-演算子の優先順位
演算子の優先順位は、式内の用語のグループ化を決定します。 これは、式の評価に影響します。 特定の演算子は、他の演算子よりも優先順位が高くなっています。たとえば、乗算演算子は加算演算子よりも優先順位が高くなります。
たとえば、x = 7 + 3 * 2;ここでは、演算子*の優先順位が+より高いため、xには20ではなく13が割り当てられます。したがって、最初の評価は3 * 2で行われ、その後7が追加されます。
ここでは、優先順位が最も高い演算子が表の上部に表示され、優先順位が最も低い演算子が下部に表示されます。 式内では、優先順位の高い演算子が最初に評価されます。
Category | Operator | Associativity |
---|---|---|
Postfix | () [] → . ++ - - | Left to right |
Unary | + - ! ~ ++ - - (type)* & sizeof | Right to left |
Multiplicative | */% | Left to right |
Additive | + - | Left to right |
Shift | << >> | Left to right |
Relational | < ⇐ > >= | Left to right |
Equality | == != | Left to right |
Bitwise AND | & | Left to right |
Bitwise XOR | ^ | Left to right |
Bitwise OR | ||
Left to right | Logical AND | && |
Left to right | Logical OR | |
Left to right | ||
Conditional | ?: | Right to left |
Assignment | = += -=* =/= %⇒>= <⇐ &= ^= | = |
Right to left | Comma | , |
例
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("Value of (a + b) *c/d is : {0}", e);
e = ((a + b)* c)/d; //(30 *15 )/5
Console.WriteLine("Value of ((a + b)* c)/d is : {0}", e);
e = (a + b) *(c/d); //(30)* (15/5) {0}", e);
e = a + (b *c)/d; // 20 + (150/5) {0}", e);
Console.ReadLine();
}
}
}
上記のコードをコンパイルして実行すると、次の結果が生成されます-
Value of (a + b)* c/d is : 90
Value of ((a + b) * c)/d is : 90