可以使用影響表達式計算的運算子的優先權對表達式中的術語進行分組,其中某些運算子的優先權與其他運算子的優先權相比較高,並且在對運算子進行分組時,優先順序較高的運算子在下列情況下被給予第一優先:與表達式求值優先順序較低的運算子相比,不同類型的運算子有後綴運算子、一元運算子、乘法運算子、加法運算子、移位運算子、關係運算子、相等運算子、位元與運算子、位元異或運算子、位元或運算子、邏輯與運算子、邏輯或運算子、條件運算子、賦值運算子和逗號運算子。
C# 中運算子優先權的功能
為了理解 C# 中運算子優先順序的工作原理,我們需要知道運算子的優先順序。高位的優先順序如下:
1.後綴運算子
- 這包括運算子 ()[]->.++–
- 每當這些運算子在表達式中使用並考慮求值時,它們的結合性都是從左到右。
2.一元運算子
- 這包括運算子 + – ! ~ ++ —(型別)* &sizeof
- 每當這些運算子在表達式中使用並考慮求值時,它們的結合性都是從右到左。
3.乘法運算子
- 這包括運算子 */%
- 每當這些運算子在表達式中使用並考慮求值時,它們的結合性都是從左到右。
4.加法運算子
- 這包括運算子 +-
- 每當這些運算子在表達式中使用並考慮求值時,它們的結合性都是從左到右。
5.移位運算子
- 這包括運算子 >
- 每當這些運算子在表達式中使用並考慮求值時,它們的結合性都是從左到右。
6.關係運算子
- 這包括運算子 >=
- 每當這些運算子在表達式中使用並考慮求值時,它們的結合性都是從左到右。
7.相等運算子
- 這包括運算子 == !=
- 每當這些運算子在表達式中使用並考慮求值時,它們的結合性都是從左到右。
8.位元與運算子
9.位元異或運算子
10。按位或運算符
11。邏輯與運算符
- 這包括運算子 &&
- 每當這些運算子在表達式中使用並考慮求值時,它們的結合性都是從左到右。
12。邏輯或運算符
- 這包括運算子 ||
- 每當這些運算子在表達式中使用並考慮求值時,它們的結合性都是從左到右。
13。條件運算符
- 這包括運算子 ?:
- 每當這些運算子在表達式中使用並考慮求值時,它們的結合性都是從右到左。
14。賦值運算子
- 這包括運算子= += -= *= /= %= >>=
- 每當這些運算子在表達式中使用並考慮求值時,它們的結合性都是從右到左。
15。逗號運算子
現在我們知道了在計算表達式時考慮的運算子的優先順序,讓我們透過一個範例來了解優先運算子的工作原理。考慮以下聲明:
int y = 2 + 3 * 5;
這語句執行後y的值是多少?
- 在上面的語句中,運算子 + 和 * 與 3 關聯。正如我們所了解的運算子和 * 的優先權高於 + 的優先權一樣,表達式 3 * 5 將首先執行,然後執行表達式 3 * 5 的結果。表達式與 2 相加。因此上述語句中 y 的值為 17。
- 如果 + 的優先權高於 *,則表達式 2 + 3 會先執行,結果表達式會乘以 5。那麼執行該語句後 y 的值為 25。因為我們要通過C# 中運算子的優先順序,* 的優先權高於 +,表達式的結果為 17。
C# 中運算子優先權範例
示範運算子優先權的 C# 程式。
代碼:
using System;
namespace Op
{
public class OpPrec
{
public static void Main(string[] args)
{
int res;
int x = 4, y = 5, z = 3;
res = --x * y - ++z;
Console.WriteLine(res);
bool res1;
res1 = y >= z + x;
Console.WriteLine(res1);
}
}
}
在上面的程式中,在表達式–x * y – ++z 中,先計算–x 和++z,然後將–x 的結果值與y 相乘,然後從結果中減去結果值++z 的值依照C# 中的運算子優先權。在表達式 y >= z + x 中,先計算 z+x,然後根據 c# 中的運算子優先權將結果值與 y 的值進行比較。
輸出:
結論
在本文中,我們透過定義和範例了解了 C# 中運算子的優先順序、它們的優先順序以及運算子優先順序的工作原理。
以上是C# 中的運算子優先級的詳細內容。更多資訊請關注PHP中文網其他相關文章!